Menggunakan PreparedStatement dengan MySQL dengan betul
Pembangun Java sering menghadapi ralat SQLException
dengan PreparedStatement
apabila berinteraksi dengan pangkalan data MySQL. Mesej ralat biasa menunjukkan sintaks SQL yang salah berhampiran tanda soal ('?'). Ini biasanya berpunca daripada penyediaan kenyataan yang tidak betul.
Satu sebab khusus menggunakan executeQuery()
dengan parameter Rentetan. Ini memintas pengikatan parameter, melaksanakan rentetan pertanyaan mentah dan bukannya versi berparameter. Penyelesaiannya adalah untuk melaksanakan PreparedStatement
tanpa hujah String.
Kod yang diperbetulkan hendaklah:
<code class="language-java">statement.executeQuery();</code>
Mengabaikan hujah String daripada executeQuery()
memastikan bahawa parameter yang ditetapkan menggunakan kaedah seperti setString()
(untuk surname
dan name
, sebagai contoh) digantikan dengan betul ke dalam pertanyaan SQL sebelum pelaksanaan. Ini menghalang ralat sintaks SQL yang berkaitan dengan ruang letak.
Atas ialah kandungan terperinci Mengapakah PreparedStatement saya dalam Java membuang ralat 'sintaks SQL yang salah berhampiran '?''?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!