Java 验证用户名、密码
1. 数据库操作
2.验证用户
2.1. 查询
String sql = String.format("select count(*) from user where name='%s' and password='%s';", userName, userPass); int row = 0; jb.queryForObject(sql, Integer.class, row );
根据 row 的值来判断是否有该用户。
2.1. 错误
Parameter index out of range (1 > number of parameters, which is 0)
2.1.1. sql语句
测试后没问题
2.1.2. 猜测一
format 语句错误,检查后发现没错
2.1.3. 猜测二
int 改为 integer ,改后也没有变化
2.1.4. 还是从提示本身入手
好像是说 jb.queryForObject(sql, Integer.class, row ); 有问题。网上查了下,改为:
Integer row = (Integer) jb.queryForObject( "select count(*) from user where name=? and password=?",new Object[] {userName, userPass}, java.lang.Integer.class);
- 成功了!!!
- ‘%d’ 或 '?' 要改为 ?
- 应该想到 已经连接成功,这个错误是出在查询上。