Rumah  >  Artikel  >  pangkalan data  >  Mengapa kod JDBC saya membuang MySQLSyntaxError Exception walaupun pernyataan SQL berfungsi dalam Workbench?

Mengapa kod JDBC saya membuang MySQLSyntaxError Exception walaupun pernyataan SQL berfungsi dalam Workbench?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 06:27:03877semak imbas

Why is my JDBC code throwing a MySQLSyntaxError Exception even though the SQL statement works in Workbench?

JDBC Menghadapi Pengecualian MySQLSyntaxError dengan Sintaks Sah

Semasa meneroka aplikasi JDBC yang berkomunikasi dengan pangkalan data MySQL, pembangun mungkin tersandung pada Exepsi MySQL yang ditakuti . Menariknya, pernyataan INSERT yang sama dilaksanakan dengan lancar dalam MySQL Workbench, membuatkan orang bingung.

Penyebabnya terletak pada perincian yang diabaikan dalam kod Java:

<code class="java">sInserim.executeUpdate(sqlCommandInserim);</code>

Di sini, pembangun secara tidak sengaja cuba untuk laksanakan rentetan SQL mentah, yang termasuk ruang letak (?). Walau bagaimanapun, untuk PreparedStatement, hanya pernyataan itu sendiri harus dilaksanakan, tanpa parameter.

Untuk membetulkannya, gantikan baris di atas dengan:

<code class="java">sInserim.executeUpdate();</code>

Menggunakan kaedah executeUpdate() tanpa parameter memastikan bahawa PreparedStatement dilaksanakan dengan nilai yang ditetapkan. Kaedah executeUpdate(sqlString) harus digunakan semata-mata untuk objek Pernyataan.

Sebagai nota sampingan, adalah penting untuk menerima pengurusan sumber yang betul dengan menutup PreparedStatement dalam blok akhirnya. Ini menghalang kebocoran sumber sekiranya berlaku pengecualian, amalan yang meluas ke objek Connection, Statement dan ResultSet.

Atas ialah kandungan terperinci Mengapa kod JDBC saya membuang MySQLSyntaxError Exception walaupun pernyataan SQL berfungsi dalam Workbench?. 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