PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak mogę wstawić obiekt JSON do Postgresa za pomocą przygotowanego Javy?

To zachowanie jest dość irytujące, ponieważ ciągi JSON są akceptowane bez problemów, gdy są używane jako dosłowne ciągi w poleceniach SQL.

Istnieje już problem z tym problemem w repozytorium Github sterownika postgres (nawet jeśli wydaje się, że problemem jest przetwarzanie po stronie serwera).

Oprócz użycia rzutowania (patrz odpowiedź@a_koń_bez_imienia) w ciągu sql, autor wydania oferuje dwa dodatkowe rozwiązania:

  1. Użyj parametru stringtype=unspecified w adresie URL/opcjach połączenia JDBC.

To mówi PostgreSQL, że wszystkie parametry tekstowe lub varchar są faktycznie nieznanego typu, co pozwala mu swobodniej wywnioskować ich typy.

  1. Opakuj parametr w org.postgresql.util.PGobject :

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pobrać komentarz bazy danych PostgreSQL?

  2. SQLAlchemy wiele kluczy obcych w jednej zmapowanej klasie do tego samego klucza podstawowego

  3. Widzisz i czyścisz pamięć podręczną/bufory Postgresa?

  4. PostgreSQL:Wyszukiwanie pełnotekstowe - Jak wyszukiwać częściowe słowa?

  5. Postgresql json jak zapytanie