日期:2014-05-20  浏览次数:20923 次

高手请进!帮我看一下我这个JAVA连接mysql的程序有什么问题
package   com.chcbz;
import   java.sql.*;

public   class   UpdResult{
public   static   void   main(String   args[]){
try{
Class.forName( "com.mysql.jdbc.Driver ");
Connection   con   =   DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root ");
Statement   stmt   =   con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String   sql   =   "SELECT   student.*   FROM   student   ORDER   BY   ID ";
ResultSet   rs   =   stmt.executeQuery(sql);
while(rs.next()){
int   age   =   rs.getInt( "ID ");
// System.out.println(age);
rs.updateInt( "ID ",age+1);
rs.updateRow();
}
rs.close();
stmt.close();
con.close();
}   catch(ClassNotFoundException   e){
e.printStackTrace();
}   catch(SQLException   e){
e.printStackTrace();
}
}
}

------解决方案--------------------
rs.updateInt( "ID ",age+1);
不用看就知道问题是这里的
ID做为主键的话,是不可以重复的,如果有一个记录的ID为2,另一条记录的ID为3
当你这样更新ID为2的记录时,他的ID要变成3,和另一条记录ID为3的主键值冲突
楼主有空多看看SQL的基础