无论输入什么帐号密码都没有通过action成功转跳

来源:2-6 页面调用

foggentle3137565

2018-03-05 16:02

提交表单后控制台输出语句

WARN: [DEPRECATION] Encountered positional parameter near line 1, column 34 in HQL: [from entity.Users where username=? and password=? ].  Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.

三月 01, 2018 6:34:23 下午 org.hibernate.hql.internal.ast.HqlSqlWalker generatePositionalParameter

WARN: [DEPRECATION] Encountered positional parameter near line 1, column 49 in HQL: [from entity.Users where username=? and password=? ].  Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.

Hibernate: 

    select

        users0_.uid as uid1_1_,

        users0_.username as username2_1_,

        users0_.password as password3_1_ 

    from

        USERS users0_ 

    where

        users0_.username=? 

        and users0_.password=?

public class UserDAOImpl implements UsersDAO{
 
    @Override
    public boolean usersLogin(Users u) {
        // TODO Auto-generated method stub
        //创建事物对象
        //事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)
        Transaction ts = null;
        String hql = "";
         
        try {
            Session session = MyHibernateSessionFactory.getSessionFactory().getCurrentSession();
            //开启事物
            ts =session.beginTransaction();
            //hql查询语句
            hql = "from Users where username=? and password=? ";
            //Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句
            org.hibernate.Query query =session.createQuery(hql);
            //传递参数
            query.setParameter(0, u.getUsername());
            query.setParameter(1, u.getPassword());
            //调用其中的方法得到结果  
            List list =query.list();
            ts.commit();
            if (list.size()>0) {
                return true;
            } else {
                return false;
            }
        }
        catch (Exception ex) {
            // TODO: handle exception   
            //打印异常对象
            ex.printStackTrace();
            return false;
        }
        finally{
            //释放事物对象资源
            if (ts!=null) {
                ts=null;
            }
        }
     
    }
         
}
 
 
public class UsersAction extends superAction implements ModelDriven<Users>{
     
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Users user = new Users();
     
    //用户登录动作
    public String login() {
        UsersDAO udao =new UserDAOImpl();
        if (udao.usersLogin(user)) {
            return "login_success";
        }
        else {
            return "login_failure";
        }
         
    }
    @Override
    public Users getModel() {
        // TODO Auto-generated method stub
        return this.user;
    }
 
}


写回答 关注

1回答

  • 2841liuhai
    2018-03-09 14:53:03


    public boolean usersLogin(Users users) {
        //创建事务对象
        Transaction tx = null;
        try {
            Session session = MyHibernateSessionFactory.getSessionObject();
            tx = session.beginTransaction();
    
            Criteria criteria = session.createCriteria(Users.class);
            criteria.add(Restrictions.eq("username",users.getUsername()));
            criteria.add(Restrictions.eq("password",users.getPassword()));
    
            List<Users> usersList = criteria.list();
            tx.commit();
    
            if(usersList.size()>0){
                return true;
            }else {
                return false;
            }
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }

    换一种查询方式就对了

使用Struts2+Hibernate开发学生信息管理功能

Strust2+Hibernate整合开发案例,Java Web开发技能更上一层楼

80701 学习 · 754 问题

查看课程

相似问题