Di MySQL saya memiliki dua tabel, tableA
dan tableB
. Saya mencoba menjalankan dua kueri:
executeQuery(query1)
executeQuery(query2)
Tetapi saya mendapatkan kesalahan berikut:
can not issue data manipulation statements with executeQuery().
Apa artinya ini?
Jawaban:
Untuk memanipulasi data yang sebenarnya Anda butuhkan
executeUpdate()
daripadaexecuteQuery()
.Berikut kutipan dari
executeUpdate()
javadoc yang sudah menjadi jawaban tersendiri:sumber
Saat menjalankan pernyataan DML, Anda harus menggunakan
executeUpdate
/execute
bukanexecuteQuery
.Berikut perbandingan singkatnya:
sumber
Jika Anda menggunakan boot musim semi, cukup tambahkan anotasi @Modifying.
sumber
@Modifying(clearAutomatically = true) @Transactional
tepat di atas anotasi @Query yang mendefinisikan kueri penghapusan sayaGunakan
executeUpdate()
untuk mengeluarkan pernyataan manipulasi data.executeQuery()
hanya dimaksudkan untuk query SELECT (yaitu query yang mengembalikan set hasil).sumber
Untuk Hapus kueri - Gunakan
@Modifying
dan@Transactional
sebelum@Query
sejenisnya: -Itu tidak akan memberikan
java.sql.SQLException: Can not issue data manipulation statements with executeQuery()
kesalahan.sumber
Untuk itulah
executeUpdate
.Berikut adalah ringkasan perbedaan yang sangat singkat: http://www.coderanch.com/t/301594/JDBC/java/Difference-between-execute-executeQuery-executeUpdate
sumber
Kode ini bekerja untuk saya: Saya menetapkan nilai sedikit pun INSERT dan mendapatkan LAST_INSERT_ID () dari nilai ini dengan SELECT; Saya menggunakan java NetBeans 8.1, MySql dan java.JDBC.driver
sumber
executeQuery()
mengembalikan aResultSet
. Saya tidak begitu akrab dengan Java / MySQL, tetapi untuk membuat indeks Anda mungkin menginginkan fileexecuteUpdate()
.sumber
ResultSet
. Ini bukan mengembalikan sebuahResultSet
.Jangan lupa tambahkan @Modifying dan @Transnational sebelum @query. itu berhasil untuk saya.
Untuk menghapus record dengan beberapa kondisi menggunakan native query dengan JPA, anotasi yang disebutkan di atas menjadi penting.
sumber
Selain executeUpdate () di dalam tanda kurung, Anda juga harus menambahkan variabel untuk menggunakan pernyataan SQL.
Sebagai contoh:
sumber