如何判断数据库中的字段是否已存在?
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来判断,但是当我输入重复的数据时电脑还是判断不出来,为什么哩?
------解决方案--------------------isexist=rs.next();
------解决方案--------------------楼上正解!
一般来说,在生成resultset之后,都要调用next()方法。
next()方法将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
------解决方案--------------------有可能是isexist=rs.first();这句执行的时候就出错了。