读书人

!帮小弟我看一下小弟我这个JAVA连接m

发布时间: 2012-02-22 19:36:55 作者: rapoo

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

读书人网 >J2SE开发

热点推荐