Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan setDate() dengan Betul dalam PreparedStatements untuk Mengelakkan IllegalArgumentException?

Bagaimana Menggunakan setDate() dengan Betul dalam PreparedStatements untuk Mengelakkan IllegalArgumentException?

Linda Hamilton
Linda Hamiltonasal
2025-01-18 22:37:10205semak imbas

How to Properly Use setDate() in PreparedStatements to Avoid IllegalArgumentException?

Mengelakkan IllegalArgumentException dengan setDate() dalam Penyata Disediakan

Berpindah daripada pertanyaan SQL berkod keras kepada kenyataan yang disediakan berparameter meningkatkan kebolehselenggaraan dan keselamatan kod. Walau bagaimanapun, penggunaan setDate() kadangkala boleh membawa kepada IllegalArgumentException. Panduan ini menunjukkan penyelesaian menggunakan java.sql.Date dan java.sql.Timestamp.

Mengendalikan Lajur TARIKH

Untuk lajur pangkalan data jenis DATE, gunakan kaedah ini untuk menetapkan parameter tarikh dengan betul:

  • Menggunakan Rentetan: Sediakan rentetan tarikh dalam format 'yyyy-MM-dd':

    <code class="language-java"> ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));</code>
  • Menggunakan java.util.Date: Tukar objek java.util.Date:

    <code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object
     ps.setDate(2, new java.sql.Date(endDate.getTime()));</code>
  • Menetapkan Tarikh Semasa: Masukkan tarikh semasa:

    <code class="language-java"> ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));</code>

Mengendalikan Lajur TIMESTAMP atau DATETIME

Jika lajur pangkalan data anda jenis TIMESTAMP atau DATETIME, gunakan setTimestamp() dengan pilihan ini:

  • Menggunakan Rentetan: Sediakan rentetan tarikh dan masa dalam format 'yyyy-MM-dd HH:mm:ss[.f...]':

    <code class="language-java"> ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00"));</code>
  • Menggunakan java.util.Date: Tukar objek java.util.Date:

    <code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object
     ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));</code>
  • Menetapkan Cap Masa Semasa: Masukkan cap masa semasa:

    <code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));</code>

Dengan mengikuti garis panduan ini, anda boleh menetapkan parameter tarikh dan cap masa dengan pasti dalam penyata yang anda sediakan, mengelakkan IllegalArgumentException. Ingat untuk memilih kaedah yang sesuai (setDate() atau setTimestamp()) berdasarkan jenis data lajur pangkalan data anda.

Atas ialah kandungan terperinci Bagaimana Menggunakan setDate() dengan Betul dalam PreparedStatements untuk Mengelakkan IllegalArgumentException?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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