我做的語句:結果集不可更新
Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
try(ResultSet results = statement.executeQuery(String.format("SELECT id, id2 FROM SETTINGS WHERE instance3 = %s, instance.getId())));
但我得到這個:
com.mysql.cj.jdbc.exceptions.NotUpdatable:結果集不可更新(被引用的表沒有主鍵)。此結果集必須從使用結果集類型ResultSet.CONCUR_UPDATABLE創建的語句中獲得comd,查詢必須選擇一個表,不能使用函數並且必須從該表中選擇所有主鍵。
任何想法爲什麼會發生這種情況?
的可能重複:https://stackoverflow.com/questions/22271475/jdbc-deleting-an-entry-primary-keys-concur-updatable-issues – tima
爲什麼你使用'String.format'爲設置參數值?這是不安全的,並向您打開SQL注入。 –
異常消息非常明確,您選擇的表沒有主鍵(或者您未選擇所有主鍵列)。請在您的問題中包含所有相關的DDL。 –