7

このエラーが発生しています

javax.servlet.ServletException: com.mysql.jdbc.NotUpdatable: 結果セットを更新できません。

このエラーは主キーに関するものであることはわかっていますが、最初にすべてのテーブルに主キーを挿入します。したがって、このテーブルにも主キーがあります。コードの一部を投稿しています。

Statement st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery("Select * from test3 order by rand() limit 5");
List arrlist = new ArrayList();
while(rs.next()){
   String xa =rs.getString("display");
   if(xa.equals("1")){
      arrlist.add(rs.getString("question_text"));
   }
   rs.updateString("display", "0");
   rs.updateRow();

このコードで何か問題が発生している場合は教えてください。助けてください。これは私のデータベースです

+----------------+---------------+------+-----+---------+----------------+
| Field          | Type          | Null | Key | Default | Extra          |
+----------------+---------------+------+-----+---------+----------------+
| id             | int(11)       | NO   | PRI | NULL    | auto_increment |
| index_question | varchar(45)   | YES  |     | NULL    |                |
| question_no    | varchar(10)   | YES  |     | NULL    |                |
| question_text  | varchar(1000) | YES  |     | NULL    |                |
| file_name      | varchar(128)  | YES  |     | NULL    |                |
| attachment     | mediumblob    | YES  |     | NULL    |                |
| display        | varchar(10)   | YES  |     | NULL    |                |
+----------------+---------------+------+-----+---------+----------------+
4

2 に答える 2

0

クエリは関数を使用できません。SQL クエリ文字列から「rand()」を削除してみてください。
詳細については、JDBC 2.1 API 仕様のセクション 5.6 を参照してください。

于 2016-08-03T17:26:03.363 に答える