各位大虾们好:
问个问题:我用struts做登陆,怎么把页面上的数据和DB里面的对比?是直接去查询还是需要用JDBC查询出来后,再对比?好纠结 希望指点。。
------解决方案--------------------
直接根据提交的name 和password 在数据库中查询,
------解决方案--------------------
直接根据表单提交的数据去DB查询,如果查询不到,则登录失败。 如果使用你说的先查出来再比对,完全没必要。 前面是一对一比对,后面则是多对一比对, 当用户量一大,登录就非常慢了,所以建议前者。
------解决方案--------------------
业务层写个查询方法,把页面传到action的值传过去查询,查询不到就登录失败,查询到了再判断密码是否正确
- Java code
/** * 判断用户是否存在 * @param username * @return */public boolean exsit(String username){ long count = (Long)em.createQuery("select count(o) from Buyer o where o.username=?1") .setParameter(1, username).getSingleResult(); return count>0; }/** * 判断用户名及密码是否正确 * @param username * @param password * @return */public boolean checkUser(String username, String password){ long count = (Long)em.createQuery("select count(o) from Buyer o where o.username=?1 and o.password=?2") .setParameter(1, username).setParameter(2, MD5.MD5Encode(password)).getSingleResult(); return count>0; }