2 u012576799 u012576799 于 2016.03.22 19:35 提问

结果集不执行rs.next()

为什么结果集不执行rs.next()? 结果集一直是空的 求各位大神 帮个忙吧

public class LoginDao {
public Users login(String name,String password){
Users users = null;
//连接数据库
Connection conn = ConnectDB.getConnection();
String sql = "select * from users where name = ? and password = ?";
//ResultSet rs = null;//结果集
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
System.out.println("123456778980909989789");
System.out.println(rs.first());
while (rs.next()) {
//从结果集中取出内容放到模型集合中
System.out.println("dao:" + rs.getString("name"));
System.out.println("dao:" + rs.getString("password"));
Users us = new Users();
// us.setId(rs.getInt("id"));
us.setName(rs.getString("name"));
us.setNo(rs.getString("no"));
us.setIdentity(rs.getString("identity"));
us.setClasses(rs.getString("classes"));
us.setGrade(rs.getString("grade"));
us.setSubject(rs.getString("subject"));
us.setScore(rs.getString("score"));
us.setPassword(rs.getString("password"));
//usersList.add(us);
}
// 释放此 ResultSet 对象的数据库和 JDBC 资源
rs.close();
// 释放此 PreparedStatement 对象的数据库和 JDBC 资源
conn.close();
}catch (Exception e){
e.printStackTrace();
}
return users;
}

}

4个回答

yue1123
yue1123   2016.03.22 19:54

检查下数据库是否有对应的SQL查询数据,如果查询没有符合条件的数据,那rs为空也是正常的。

u012576799
u012576799 回复yue1123: 把SQL 语句注释掉?后面的都错了啊 这个代码里我加了一个rs.frist() 控制台输出的是false
一年多之前 回复
yue1123
yue1123 回复彼岸阳光灬小皮: 能不能把这句注释掉后再试下System.out.println(rs.first());
一年多之前 回复
u012576799
u012576799 SELECT * FROM users where name= '张三' AND password = '123456'
一年多之前 回复
yue1123
yue1123 回复彼岸阳光灬小皮: 那你直接用SQL语句,不要用?的方式,看能不能查询出来?还有能不能贴出你用SQL直接查询数据库后的结果图,以及name变量和password变量的值?
一年多之前 回复
u012576799
u012576799 数据库没有问题的 可以查询
一年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.22 19:59

有没有异常信息呢?数据库连接有没有成功?

Jiavo
Jiavo   2016.03.22 20:02

1.你的数据库中user表中添加了一条数据没?如果没有添加一条
2.你试试把while改成if试一试。
你看看怎么样

u012576799
u012576799 user表里有数据的 我估计应该是查询的问题
一年多之前 回复
AinUser
AinUser   2016.03.22 20:32

为什么你这里rs。next后面不是用:for循环去遍历输出呢

u012576799
u012576799 rs.next本身不就是遍历么?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!