写日常测试调Bug的第一天

登录跳转界面

跳转的第一个小问题

先是发现不管用户名密码是什么,总是登录成功,后通过使用System.out.println(),排查发现,在dao层运行sql语句的时候,判断方式是result是否为空,但是不曾注意到,如果没有一直数据,result依旧不为null.后通过判断result获取到的值与输入框内获取到的值对比,从而解决这个问题。

跳转的第二个小问题

在解决第一个小问题的时候,我一开始直接使用

if(username==result.getString(1) ) {
            		st=1;
            	}
 //st为判断数据库内是否有该用户的状态,1为有,0为无,初始化为0

结果一直显示跳转不过来,后来发现不能使用==,应改为equals

if(username.equals(result.getString(1)) ) {
            		st=1;
            	}
 //st为判断数据库内是否有该用户的状态,1为有,0为无,初始化为0

附源码dao层

public class UserDao {
	//查询可以操作学生信息的用户
	public int query_user(String username,String password) {
        Connection con= JdbcUnit.getConnection();
        PreparedStatement stmt=null;
        ResultSet result=null;
        List<User> userList = new ArrayList<>();
        int st=0;//st为判断数据库内是否有该用户的状态,1为有,0为无,初始化为0
        String sql="SELECT * FROM user where username = ? and password =?";
        try {
            stmt=con.prepareStatement(sql);//sql语句预存储
            stmt.setString(1, username);//将数据插入占位符
            stmt.setString(2, password);//将数据插入占位符
            result=stmt.executeQuery();//sql语句执行
            while(result.next()) {
            	//System.out.println(result.getString(1));
            	if(username.equals(result.getString(1)) ) {
            		st=1;
            	}
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
        	JdbcUnit.close(result,stmt,con);
        }
        //System.out.println(st);
        return st;
    }
}
//sql语句执行那一部分可以简略一些,可以不必使用占位符?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值