Hibernate检索方式简单总结

时间:2021-10-18 08:10:39

查询名字是Tom,年龄大于岁的用户按名字升序排列,检索的结果最多每一页显示3条数据

1)HQL检索方式
     这是HQL使用最广的一种检索方式
     //创建Query对象
     Query query = session.createQuery("from User user where user.name =: userName" 
                           + "and user.age >: userAge order by user.name");
    //设置分页
    query.setFirstResult(0);//从0对象开始检索
    query.setMaxResult(3);
   
    //设置查询条件的方式一
    query.setString("userName" ,"Tom");
    query.setString("userAge" ,10);
    
    //设置查询条件的方式二
    query.setString(0 ,"Tom");
    query.setString(1 ,18);


    
    
    //执行查询语句,返回查询结果
   List res = query.list();
2)QBC检索方式
    第一步,创建Criteria对象
    Criteria criteria = session.createCriteria(User.class);
   
   //设置查询条件
   Criterion c1 = Restrictions.eq("name","S%");
   Criterion c2 = Restrictions.gt("age",18);
   
   //添加查询条件
   criteria.add(c1);
   criteria.add(c2);
    
   criteria.setFirstResult(0);
   query.setMaxResult(3);
    //设置按名字升序排列
    criteria.addOrder(Order.asc("name"));
   
   //执行查询语句,返回查询结果
   List res = criteria.list();


3)本地SQL检索方式
    //创建Query对象,注意里面查询的是表名和列名,不再是对象名,大写加以区分
    Query query = session.createSQLQuery("select * from USER  where NAME  =: userName" 
                           + "and AGE >: userAge order by NAME");
    query.setFirstResult(0);//从0对象开始检索
    query.setMaxResult(3);


    //设置查询条件的方式一
    query.setString("userName" ,"Tom");
    query.setString("userAge" ,18);
     
     //执行查询语句,返回查询结果
   List res = query.list();