sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur kan jag infoga JSON-objekt i Postgres med Java prepareStatement?

Detta beteende är ganska irriterande eftersom JSON-strängar accepteras utan problem när de används som bokstavliga strängar i SQL-kommandon.

Det finns redan ett problem för detta i postgres drivrutin Github-förvaret (även om problemet verkar vara bearbetningen på serversidan).

Förutom att använda en cast (se svaret av@a_häst_med_inget_namn) i sql-strängen, erbjuder problemförfattaren två ytterligare lösningar:

  1. Använd en parameter stringtype=unspecified i JDBC-anslutningsadressen/alternativen.

Detta talar om för PostgreSQL att all text eller varchar-parametrar faktiskt är av okänd typ, vilket gör att den kan härleda deras typer mer fritt.

  1. Sätt in parametern i ett org.postgresql.util.PGobject :

 PGobject jsonObject = new PGobject();
 jsonObject.setType("json");
 jsonObject.setValue(yourJsonString);
 pstmt.setObject(11, jsonObject);


  1. Hur skapar man tabell med SQLite-databas i Android?

  2. Hur man skapar ett Excel-dokument från ett Java-program med hjälp av Apache POI

  3. Ogiltigt gemensamt användar- eller rollnamn

  4. Hur man konverterar Excel-ark till SQLite-databas i Android