Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

157
Visualizações
Cómo insertar varias filas a través de una cadena de consulta parametrizada

Tengo la siguiente consulta que funciona cuando quiero realizar una inserción de una sola fila. Pero, ¿cómo puedo hacerlo para múltiples inserciones (alrededor de 3000 inserciones de fila) al mismo tiempo en RxJava en una base de datos de Postgres?

Esto es lo que estoy haciendo actualmente y funciona bien para una sola fila.

 private Single<ResultSet> insertion(MyRequest request) { List<Object> params = Arrays.asList(request.getId(), request.getName(), request.getStatus()); String query = "INSERT INTO myDb.myTable(id, name, status, updated_time) " + "VALUES (?, ?, ?, current_timestamp)" + "RETURNING id, name, updated_time"; return client.rxQueryWithParams(query, new JsonArray(params)); }

No puedo hacer lo siguiente, que no es factible para acomodar las 3000 consultas. Buscando así una mejor manera de construir la consulta Parametizada. Por favor aconséjame. Gracias.

 private Single<ResultSet> insertAll(List<MyRequest> requests) { String query = "INSERT INTO myDb.myTable(id, name, status, updated_time) " + "VALUES (?, ?, ?, current_timestamp), " + "VALUES (?, ?, ?, current_timestamp)"; List<Object> params = Arrays.asList( requests.get(0).getId(), requests.get(0).getName(), requests.get(0).getStatus(), requests.get(1).getId(), requests.get(0).getName(), requests.get(1).getStatus() // ..... and on and on ... ); return client.rxQueryWithParams(query, new JsonArray(params)); }

Alternativamente, puedo hacer un bucle de la siguiente manera. Buscando una mejor solución si hay una.

 private Single<ResultSet> insertAll(List<AddEventRequest> requests) { StringBuilder query = new StringBuilder("INSERT INTO myDb.myTable(id, name, status, updated_time) "); List<Object> params = new ArrayList<>(); for(AddEventRequest request : requests) { query.append("VALUES (?, ?, ?, current_timestamp), "); params.add(request.getId()); params.add(request.getName()); params.add(request.getStatusCode()); } query.setLength(query.length() - 2); return client.rxQueryWithParams(query.toString(), new JsonArray(params)); }
over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda