public void AddShujuku(){
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
System.out.println(""+e);
}
try{
String strSQL;
strSQL="insert into 用户管理 (用户名,密码) values('";
strSQL=strSQL+text1.getText().trim()+"','";
strSQL=strSQL+text2.getText().trim()+"')";

con=DriverManager.getConnection("jdbc:odbc:图书管理系统","","");
sql=con.createStatement();
boolean isexist=false;
rs=sql.executeQuery("SELECT 用户名 FROM 用户管理 WHERE 用户名='"+text1.getText().trim()+"'");
try{
isexist=rs.first();
}
catch(SQLException ex){}
if(isexist){
JOptionPane.showMessageDialog(null,"用户名已存在!");
}
else{
sql.executeUpdate(strSQL);
JOptionPane.showMessageDialog(null,"添加成功!");
con.close();
}
}
catch(SQLException e1){ e1.printStackTrace();}

}
以上是我的源代码,我用了first方法,定义了一个boolean isexist=false来判断,但是当我输入重复的数据时电脑还是判断不出来,为什么哩?

解决方案 »

  1.   

    楼上正解!一般来说,在生成resultset之后,都要调用next()方法。
    next()方法将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
      

  2.   

    有可能是isexist=rs.first();这句执行的时候就出错了。