mysql做简单用户登陆的几种方式

之前回答一个技术问题的时候,没看清楚人家写的sql回答错误了。真心不好意思。这里就简单提一下java做用户登陆时,简单的用户验证的几种办法。

先用段代码举个例子

try {
        conn = DriverManager.getConnection("jdbc:sqlserver://localHost:1433;databaseName=MySchool","sa","sqlpass");
        String id = "zl";
        String pwd = "1234";
        String sql = "select Count(*) as login from Admin where LoginId = ? and LoginPwd = ?";
        ps = conn.prepareStatement(sql);
        ps.setString(1, id);
        ps.setString(2, pwd);

        int r = ps.executeQuery().getInt(1);           //这里报不能从结果集转换为int
        System.out.println(r == 1 ? "登录成功!" : "登录失败!");
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        if(ps != null){
            ps.close();
        }
        if(conn != null){
            conn.close();
        }
    }
}

如上,我们从用户数据表中可以直接查询满足条件的用户id和用户密码。一般来说,用户id是唯一的,因此返回的数据要么是1要么是0

所以第一种就可以用sql统计用户数如:

select Count(*) as login from Admin where LoginId = ? and LoginPwd = ?
这种就直接比较返回结果就行了

第二种就是把所有的用户查回来,相比第一种各有各的优势。第二种可以获得其他用户信息,第一种的数据量很小。

select * from Admin where LoginId = ? and LoginPwd = ?
然后在结果集里面判断是否存在即:

if(rs.next()){
	System.out.println("登陆成功");
}else{
	System.out.println("登陆失败");
}
这样也可以来做用户判断,其实实际原理是一样的。

你可能感兴趣的:(java随笔)