Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan setDate() dengan Betul dalam PreparedStatements untuk Mengelakkan IllegalArgumentException?
IllegalArgumentException
dengan setDate()
dalam Penyata DisediakanBerpindah 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!