首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

JDBC 批量更新失误

2013-07-08 
JDBC 批量更新出错有一个集合: Student [ id3, name3a,age2] Student [ id1, name1a,age3]数据库中。

JDBC 批量更新出错
有一个集合:
 Student [ id=3, name=3a,age=2]
 Student [ id=1, name=1a,age=3]
数据库中。
mysql> select * from b;
+----+------+------+
| id | name | age  |
+----+------+------+
|  2 | 2a   |    2 |
|  3 | 3a   |    3 |
+----+------+------+
批更新语句:


   conn.setAutoCommit(false);
PreparedStatement ps = null;
ps = conn.prepareStatement("update b set id=?,name=? where age=?",ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
System.out.println("集合大小:"+ stus.size());
for (int i = 0; i < stus.size(); i++) {
ps.setInt(1, stus.get(i).getId());
ps.setString(2, stus.get(i).getName());
ps.setInt(3,  stus.get(i).getAge());
ps.addBatch();
}
ps.executeBatch();
conn.commit();
  

在执行 ps.executeBatch(); 报错。
java.sql.BatchUpdateException: Duplicate entry '3' for key 1  JDBC 数据库 MySQL 批处理
[解决办法]
id=3的,重复了。
[解决办法]
id是表的pk吧
[解决办法]
主键重复了。
[解决办法]
id 3 和1里的重复拉
[解决办法]
pk重复了!

热点排行