Rumah > Artikel > pangkalan data > Mengapa kod JDBC saya membuang MySQLSyntaxError Exception walaupun pernyataan SQL berfungsi dalam 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!