sql >> Database >  >> RDS >> PostgreSQL

JDBC Voorbereide instructieparameter in json

Ik heb eigenlijk contact opgenomen met JDBC-ontwikkelaars via Github en na wat discussies lijkt het erop dat momenteel de beste oplossing is om de voorbereide verklaring als volgt te hebben:

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

en geef de hele zoekcriteria door als stringified JSON-object voor de parameter:

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

dat is geen perfecte oplossing, maar lijkt de best mogelijke vanwege een gebrek aan servermogelijkheden. Uiteindelijk valt het mee, want er is (theoretisch) geen risico op SQL-injectie.

Meer details over het gekoppelde Github-probleem.




  1. Begrijpen wat sp_updatestats echt wordt bijgewerkt

  2. Primaire sleutel automatisch verhogen in SQL Server Management Studio 2012

  3. NSIS Compile - mysql wordt niet herkend als bruikbaar programma - Waarom mislukt de NsExec::ExecToLog-instructie?

  4. MySql te veel verbindingen