很神奇,看了大部分博客结果都说查询数据库数据要用select * from mytable,然后一个个的取遍历查找自己要的数据。我猜都是‘以讹传讹‘,正确的做法是使用where。下面上代码:
我的数据库中表为mogujie,所以命令是
select * from mogujie m where m.user=? and m.pwd=?
//验证是否存在用户 User VerifyUser(String user,String pwd) { String sql="select * from mogujie m where m.user=? and m.pwd=?"; try { PreparedStatement preparedStatement=conn.prepareStatement(sql); preparedStatement.setString(1, user); preparedStatement.setString(2, pwd); ResultSet re= preparedStatement.executeQuery(); re.next(); return new User(re.getString(1),re.getString(2),re.getString(3)); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return null; }
值得注意的是,因为ResultSet初始索引在0上,所以需要next一次才能得到要得到的数据。