REST API с использованием java и весенней загрузки

Я хочу создать API для отдыха, который выполняет только некоторые операции, такие как извлечение данных из mongodb, и обновляет их по имени, как я извлекаю 5000 элементов, и я хочу обновить переменную id, может ли кто-нибудь помочь мне в этом?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
23
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На стороне сервера я создал класс с аннотацией @RestContoller. Затем вы можете объявить методы с аннотацией @RequestMapping, которые возвращают @ResponseBody.

Вот пример класса, который работает в одном из моих приложений:

package com.propfinancing.CADData.web;

import com.propfinancing.util.db.MySQLUtil;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TXCollin {
  @Autowired
  private JdbcTemplate jdbcTemplate;

  @RequestMapping(method = RequestMethod.GET, value = "/TXCollin/getByIdAndYear")
  public  @ResponseBody Map<String,Object> getByIdAndYear(@RequestParam(value = "id") long id, @RequestParam(value = "year") int year) 
  throws Exception {
    StringBuffer sql = new StringBuffer("SELECT * from TXCollin_AD_Public WHERE");
    sql.append(" prop_id = "+MySQLUtil.NUMBER_FORMAT.format(id));
    sql.append(" AND curr_val_yr = "+MySQLUtil.NUMBER_FORMAT.format(year));
    sql.append(" ORDER BY pct_ownership DESC");
    sql.append(" LIMIT 1");
    HashMap<String,Object> valueMap = new HashMap<String,Object>();
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
      conn = jdbcTemplate.getDataSource().getConnection();
      stmt = conn.createStatement();
      rs = MySQLUtil.executeQuery(sql.toString(), stmt);
      if ( rs.next() ) {
        ResultSetMetaData rsmd = rs.getMetaData();
        int columnCount = rsmd.getColumnCount();
        for( int i=1; i<=columnCount; i++ ) {
          String columnName = rsmd.getColumnName(i);
          Object value = rs.getObject(i);
          valueMap.put(columnName, value);
        }
      }
    } finally {
      try { rs.close(); } catch( Exception e ) { };
      try { stmt.close(); } catch( Exception e ) { };
      try { conn.close(); } catch( Exception e ) { };
    }
    if ( !valueMap.isEmpty() )
      return valueMap;
    return null;
  }
}

Я могу вызвать его из браузера, используя URL https://marketing.propfinancing.com/caddata/TXCollin/getByIdAndYear?id=54&year=2022

На самом деле вы не можете загрузить URL-адрес, так как я спрятал его за Spring Security, но это дает вам представление. Я также понимаю, что в этом примере я использую необработанный SQL, и я мог бы использовать JPA. Я решил не делать этого для этого приложения, так как не хотел писать кучу кода для классов моделей и взаимодействия с базой данных.

Neil 19.03.2022 16:11

Другие вопросы по теме