sql >> Database teknologi >  >> RDS >> PostgreSQL

JDBC Forberedt sætningsparameter inde i json

Jeg nåede faktisk ud til JDBC-udviklere på Github og efter nogle diskussioner ser det ud til, at den bedste løsning i øjeblikket er at have den udarbejdede erklæring som følger:

String query = "SELECT id, data FROM table_name WHERE data->'objects' @> ?::jsonb";

og send hele søgekriteriet som strengt JSON-objekt for parameteren:

PreparedStatement st = connection.prepareStatement(query);
st.setString(1, "[\"id\":" + "id1" + "]");
st.executeQuery();

det er ikke en perfekt løsning, men virker den bedst mulige på grund af manglende serverkapacitet. I sidste ende er det ikke så slemt, da der (teoretisk) ikke er nogen risiko for SQL-injektion.

Flere detaljer om det tilknyttede Github-problem.




  1. forventer, at parameter 1 er ressource, mand, boolesk givet

  2. Slut dig til to tabeller, når der ikke er nogen værdi i en tabel

  3. Sådan administreres GetDate() med Entity Framework

  4. Bevarer tekstboksværdierne selv efter opdatering