PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Spring JDBC + Postgres SQL + Java 8 - konversi dari/ke LocalDate

Dukungan Date &Date API baru dengan JDBC ditentukan oleh JEP 170:JDBC 4.2 . Postgres halaman unduh kompatibilitas dengan JDBC 4.2 fitur baru hanya dimulai pada Postgres versi 9.4, jadi beberapa tantangan kompatibilitas akan muncul menggunakan API baru dengan driver yang lebih lama.

Bahkan setObject(1, new java.util.Date()); ditolak oleh kendala yang sama di Postgres (yang diterima dengan senang hati oleh MySQL), tidak hanya API baru seperti LocalDate . Beberapa perilaku akan bergantung pada implementasi, jadi hanya java.sql.* dijamin cukup banyak (secara kasar).

Adapun kerangka kerja Spring JDBC, saya pikir mengesampingkan perilakunya berfungsi untuk menyiasatinya tanpa menyesalinya nanti. Saya menyarankan pendekatan yang sedikit berbeda untuk apa yang sudah Anda lakukan:

  1. Perpanjang BeanPropertySqlParameterSource perilaku untuk bekerja dengan API tanggal &waktu baru, dan kelas lain yang terkait dengan input parameter jika diperlukan (saya tidak terbiasa dengan API Musim Semi itu).
  2. Ekstrak perilaku yang sudah diganti dari BeanPropertyRowMapper ke kelas lain untuk mengambil operasi.
  3. Tutup semuanya dengan pola pabrik atau kelas utilitas sehingga Anda tidak perlu melihatnya lagi.

Dengan cara ini Anda meningkatkan kemampuan pemfaktoran ulang di masa mendatang jika API didukung dan mengurangi jumlah kode yang dibutuhkan selama pengembangan.

Anda juga dapat melihat beberapa DAO pendekatan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Karakter asing/aksen dalam kueri sql

  2. Bagaimana cara memperbaiki kesalahan ketidakcocokan versi pg_dump?

  3. Kesalahan PostgreSQL saat mencoba membuat ekstensi

  4. Tidak dapat mengimpor .csv ke Cloud SQL dari konsol

  5. Permintaan pembaruan sederhana yang lambat pada database PostgreSQL dengan 3 juta baris