PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để tôi có thể Chèn đối tượng JSON vào Postgres bằng Java readyStatement?

Hành vi này khá khó chịu vì các chuỗi JSON được chấp nhận mà không gặp vấn đề gì khi được sử dụng làm chuỗi ký tự trong các lệnh SQL.

Đã xảy ra sự cố cho vấn đề này trong kho lưu trữ Github của trình điều khiển postgres (ngay cả khi vấn đề có vẻ là do quá trình xử lý phía máy chủ).

Bên cạnh việc sử dụng diễn viên (xem câu trả lời của @ a_horse_with_no_name) trong chuỗi sql, tác giả vấn đề đưa ra hai giải pháp bổ sung:

  1. Sử dụng một tham số stringtype=unspecified trong URL / tùy chọn kết nối JDBC.

Điều này cho PostgreSQL biết rằng tất cả các tham số văn bản hoặc varchar thực sự thuộc loại không xác định, cho phép nó suy ra các loại của chúng một cách tự do hơn.

  1. Bao bọc tham số trong 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. Làm thế nào để nâng cấp PostgreSQL từ phiên bản 9.6 lên phiên bản 10.1 mà không làm mất dữ liệu?

  2. PGEast, Đo điểm chuẩn phần cứng và Trang trại hiệu suất PG

  3. Cách so sánh hai lược đồ trong PostgreSQL

  4. Giá trị tham chiếu của cột nối tiếp trong một cột khác trong cùng một INSERT

  5. Cách duy trì dữ liệu trong cơ sở dữ liệu postgres dày đặc bằng cách sử dụng khối lượng