java中关于将查询结果赋值的语句

来源:百度知道 编辑:UC知道 时间:2024/06/21 18:48:50
public int Judgment(User user){
int f=user.getFlag();
int b = 0;
String username = user.getUserName();
String password = user.getPassWord();
String sql = "select * from users where username='" + username
+ "' and password='" + password + "'";
System.err.println(sql);

Dbconn db = new Dbconn();
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
conn = db.getConn();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
b=rs.getInt("flag");
System.out.print(b);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
db.closeConn(conn, stmt, rs);
}

return b;
}
}
这段代码哪里有问题啊? 怎么改啊,大哥们,我想把查询到得数值赋值给b ,可是现在b的值一直都是0

在rs = stmt.executeQuery(sql);
下面加
while(rs.next()){
b=rs.getInt("flag");
System.out.print(b);
};
好像是这样的,很久没用ResultSet了,忘记了

在执行完 rs = stmt.executeQuery(sql);后
先得调用rs.next();,加上这句
然后再b=rs.getInt("flag");

应该就可以了

ResultSet默认是指向结果集的前面的

如果结果是一至多行可以用while(rs.next()){赋值语句} 这样的格式来取得所有想要的值

如果结果只要1行可以用if(rs.next()){赋值语句}

但是,总的来说都是先要执行一次rs.next()

要先执行一下rs.next();方法,rs刚取出来的时候指针是指向一个空的记录的。