Rumah > Java > javaTutorial > Bagaimana untuk Mengendalikan Objek java.time dengan JDBC dalam Pangkalan Data H2?

Bagaimana untuk Mengendalikan Objek java.time dengan JDBC dalam Pangkalan Data H2?

Mary-Kate Olsen
Lepaskan: 2024-12-31 19:02:11
asal
251 orang telah melayarinya

How to Handle java.time Objects with JDBC in H2 Database?

Pertukaran Data JDBC dengan Objek java.time

Soalan: Bagaimanakah saya boleh memasukkan jenis java.time dalam saya Pangkalan data SQL menggunakan JDBC, khususnya Pangkalan Data H2 Enjin?

Jawapan: Terdapat dua kaedah untuk mengatur pertukaran data dengan objek java.time melalui JDBC:

JDBC 4.2 Compliant Driver

  • Dengan pemacu JDBC yang serasi dengan JDBC 4.2 atau lebih tinggi, anda boleh memanipulasi objek java.time secara langsung.
  • Jawatankuasa JDBC memperbadankan kaedah setObject/getObject untuk mengendalikan ini, menghapuskan keperluan untuk kaedah seperti setLocalDate/getLocalDate.
  • Untuk memasukkan data, gunakan kaedah setObject dengan objek java.time anda sebagai hujah.
  • Untuk mendapatkan data, gunakan kaedah getObject dengan jenis data yang dijangkakan sebagai hujah tambahan, memastikan keselamatan jenis.

Pemacu Tidak Mematuhi JDBC 4.2

  • Untuk JDBC pemacu belum lagi serasi dengan JDBC 4.2, menukar sementara antara java.time dan java.sql jenis.
  • Gunakan java.sql.Date.valueOf untuk menukar LocalDate kepada java.sql.Date untuk sisipan.
  • Untuk mendapatkan semula, tukarkan java.sql.Date yang diambil kepada LocalDate menggunakan toLocalDatenya kaedah.

Contoh Kod Menggunakan Pangkalan Data H2

JDBC 4.2 Mematuhi

LocalDate today = LocalDate.now(ZoneId.of("America/Montreal"));

// Insert row
preparedStatement.setObject(1, today.minusDays(1));
preparedStatement.executeUpdate();
preparedStatement.setObject(1, today);
preparedStatement.executeUpdate();
preparedStatement.setObject(1, today.plusDays(1));
preparedStatement.executeUpdate();

// Retrieve data
LocalDate localDate = myResultSet.getObject("date_", LocalDate.class);
Salin selepas log masuk

Tidak -JDBC 4.2 Mematuhi

// Insert row
preparedStatement.setDate(1, java.sql.Date.valueOf(today));
preparedStatement.executeUpdate();

// Retrieve data
java.sql.Date sqlDate = myResultSet.getDate("date_");
LocalDate localDate = sqlDate.toLocalDate();
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Objek java.time dengan JDBC dalam Pangkalan Data H2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan