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

Spring JDBC + Postgres SQL + Java 8 - chuyển đổi từ / sang LocalDate

Hỗ trợ API ngày &tháng mới với JDBC được định nghĩa bởi JEP 170:JDBC 4.2 . Postgres trang tải xuống khả năng tương thích với JDBC 4.2 các tính năng mới chỉ bắt đầu kể từ phiên bản Postgres 9.4, vì vậy một số thách thức về khả năng tương thích sẽ xuất hiện khi sử dụng API mới với các trình điều khiển cũ hơn.

Even setObject(1, new java.util.Date()); bị từ chối bởi cùng một ràng buộc trong Postgres (được MySQL chấp nhận một cách vui vẻ), không chỉ API mới như LocalDate . Một số hành vi sẽ phụ thuộc vào việc triển khai, vì vậy chỉ java.sql.* được đảm bảo khá nhiều (nói một cách đại khái).

Đối với khuôn khổ Spring JDBC, tôi nghĩ việc ghi đè hành vi của nó sẽ giúp bạn vượt qua nó mà không phải hối hận về sau. Tôi đề xuất một cách tiếp cận hơi khác cho những gì bạn đã làm:

  1. Mở rộng BeanPropertySqlParameterSource hành vi để làm việc với API ngày và giờ mới và các lớp khác được liên kết với đầu vào tham số nếu cần (tôi không quen với API mùa xuân đó).
  2. Trích xuất hành vi đã được ghi đè của BeanPropertyRowMapper sang một lớp khác để thực hiện các thao tác tìm nạp.
  3. Kết hợp tất cả với mẫu ban đầu hoặc lớp tiện ích để bạn không phải xem lại.

Bằng cách này, bạn nâng cao khả năng tái cấu trúc trong tương lai nếu API được hỗ trợ và giảm lượng mã cần thiết trong quá trình phát triển.

Bạn cũng có thể xem một số DAO phương pháp tiếp cận.



  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 cách nào để thêm giá trị tham số vào truy vấn pgadmin sql?

  2. Ràng buộc loại trừ `EXCLUDE USING gist (c WITH &&) 'nghĩa là gì?

  3. SQLAlchemy xác minh kết nối SSL

  4. Chọn các ký tự lạ trên văn bản, không hoạt động với toán tử LIKE

  5. LỖI:quyền bị từ chối đối với chuỗi thành phố_id_seq bằng cách sử dụng Postgres