高手请进!帮我看一下我这个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的基础