查询名字是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();