public Users selectInfo(String username){
Users user = new Users();
con = DatabaseDAO.getConnection();
try{
pt = con.prepareStatement("SELECT * FROM users where username = ?");
pt.setString(1, username);
rs = pt.executeQuery();
if(rs.next()){
System.out.println("========进不来这里!=========================");
}
这个方法是从Action调的,Action运行没问题,别的方法跟这个差不多都没问题,但是到了这个方法if(rs.next())怎么都执行不进来,查询语句我弄到数据库里都能运行,实在看不出到底是哪里错了,求大神指点,从哪开始排查
------解决思路----------------------
在 if(rs.next()){ 之前加上
rs.last(); // 将光标移动到最后一行
int rowCount = rs.getRow(); // 得到当前行号,即结果集记录数
看看查询得到的结果数,如果结果数为0,那就说明是SQL赋值的问题了
------解决思路----------------------
我估计是没有这个username存在,输出一下username的值看看?是不是乱码了?
------解决思路----------------------
第一感觉,核实下数据库里的表名与列名。
------解决思路----------------------
经常出错的地方,表名 字段名 sql语句 赋值。
------解决思路----------------------
打断点,单步调试,看看connection是连上了,username的值是什么,rs的返回的是什么,或者是不是直接抛异常了
------解决思路----------------------
看数据库中数据是不是对应
------解决思路----------------------
1.复制sql语句直接在数据库上查询,是否能或许正确结果
2.先把不用where过滤username,查看是否可以获取result
3.输出username是否为空或者乱码