sql >> Databáze >  >> RDS >> PostgreSQL

Jak mohu vložit objekt JSON do Postgres pomocí Java PrepareStatement?

Toto chování je docela nepříjemné, protože řetězce JSON jsou při použití jako doslovné řetězce v příkazech SQL přijímány bez problémů.

V úložišti Github ovladače postgres s tím již existuje problém (i když se zdá, že problém spočívá ve zpracování na straně serveru).

Kromě použití přetypování (viz odpověď of@a_horse_with_no_name) v řetězci SQL nabízí autor problému dvě další řešení:

  1. Použijte parametr stringtype=unspecified v URL/možnostech připojení JDBC.

To PostgreSQL říká, že všechny parametry textu nebo varchar jsou ve skutečnosti neznámého typu, což mu umožňuje volněji odvodit jejich typy.

  1. Zabalte parametr do org.postgresql.util.PGobject :

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


  1. Jak SUBTIME() funguje v MariaDB

  2. Nedefinovaná funkce mysql_connect()

  3. Nejčastější dotazy k nalezení opravy použité v aplikacích Oracle

  4. SQLiteDatabase android IllegalStateException