Rumah > pangkalan data > tutorial mysql > 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
Lepaskan: 2024-11-03 06:27:03
asal
949 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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