SSH与SSM学习之hibernate14——Criteria查询
2017-09-17 21:51
381 查看
SSH与SSM学习之hibernate14Criteria查询
一Criteria
Criteria 中拥有查询的方法如 list uniqueResult等
二基本查询
1 示例代码
1 查询结果
三条件查询
1 说明
2 示例代码
3 查询结果
四分页查询
1 示例代码
2 查询结果
五查询总记录数
1 聚合函数
2 示例代码
3 查询结果
Projections中定义了很多聚合函数,例如 sum、avg、count、max、min等
一Criteria
Criteria 中拥有查询的方法如 list uniqueResult等
二基本查询
1 示例代码
1 查询结果
三条件查询
1 说明
2 示例代码
3 查询结果
四分页查询
1 示例代码
2 查询结果
五查询总记录数
1 聚合函数
2 示例代码
3 查询结果
SSH与SSM学习之hibernate14——Criteria查询
一、Criteria
比较适合单表查询。Hibernate自创的无语句面向对象查询。Criteria 中拥有查询的方法,如 list() ,uniqueResult()等。
二、基本查询
2.1 示例代码
/** * Criteria基本查询 */ @Test public void criteriaBaseDemo(){ //1.创建session Session session = HibernateUtils.openSession(); //------------------基本查询--------------- //2.创建Criteria查询对象 Criteria criteria = session.createCriteria(User.class); //3.获取集合 List<User> users = criteria.list(); //4.打印 System.out.println(users); //----------------------------------------- //5.关闭资源 session.close(); }
2.1 查询结果
Hibernate: select this_.id as id1_0_0_, this_.name as name2_0_0_, this_.age as age3_0_0_ from tb_user2 this_ [User{id=1, name='小明', age=20}, User{id=2, name='xiaoming', age=19}, User{id=3, name='mingming', age=22}, User{id=4, name='mingge', age=20}, User{id=5, name='xx', age=99}, User{id=6, name='wiming', age=20}]
三、条件查询
3.1 说明
使用添加查询,我们需要个Criteria添加条件,我们主要使用到 Restrictions这个类的方法sql中的表达式 | Restrictions中的方法 |
---|---|
> | gt |
= | ge |
< | lt |
<= | le |
== | eq |
!= | ne |
in | in |
between and | between |
like | like |
is not null | isNotNull |
is null | isNull |
or | or |
and | and |
3.2 示例代码
/** * Criteria 条件查询 HQL语句中,不可能出现任何数据库相关的信息的 > gt >= ge < lt <= le == eq != ne in in between and between like like is not null isNotNull is null isNull or or and and */ @Test public void criteriaConditionDemo(){ //1.创建session Session session = HibernateUtils.openSession(); //------------------条件查询--------------- //2.获取Criteria对象 Criteria criteria = session.createCriteria(User.class); //3.添加查询参数---> id 为1的User对象 criteria.add(Restrictions.eq("id",1)); User user = (User) criteria.uniqueResult(); //4.打印 System.out.println(user); //----------------------------------------- //5.关闭资源 session.close(); }
3.3 查询结果
Hibernate: select this_.id as id1_0_0_, this_.name as name2_0_0_, this_.age as age3_0_0_ from tb_user2 this_ where this_.id=? User{id=1, name='小明', age=20}
四、分页查询
4.1 示例代码
/** * Criteria分页 */ @Test public void criteriaPageDemo(){ //1.创建session Session session = HibernateUtils.openSession(); //------------------条件查询--------------- //2.创建Criteria查询对象 Criteria criteria = session.createCriteria(User.class); //3.设置分页信息 // 从0开始查询 criteria.setFirstResult(0); // 查询3条数据 criteria.setMaxResults(3); //4.执行查询 List<User> users = criteria.list(); //5.打印 System.out.println(users); //----------------------------------------- //6.关闭资源 session.close(); }
4.2 查询结果
Hibernate: select this_.id as id1_0_0_, this_.name as name2_0_0_, this_.age as age3_0_0_ from tb_user2 this_ limit ? [User{id=1, name='小明', age=20}, User{id=2, name='xiaoming', age=19}, User{id=3, name='mingming', age=22}]
五、查询总记录数
5.1 聚合函数
Criteria 中我们可以使用聚合函数。如下//3. 设置查询的聚合函数 => 总行数 criteria.setProjection(Projections.rowCount());
Projections中定义了很多聚合函数,例如 sum、avg、count、max、min等
5.2 示例代码
/**
* Criteria查询总记录数
*/
@Test
public void criteriaTotalDemo(){
//1.创建session
Session session = HibernateUtils.openSession();
//------------------条件查询---------------
//2.创建Criteria查询对象
Criteria criteria = session.createCriteria(User.class);
//3. 设置查询的聚合函数 => 总行数 criteria.setProjection(Projections.rowCount());
//4. 查询
Long count = (Long)criteria.uniqueResult();
//5. 打印
System.out.println("总条数:"+count);
//-----------------------------------------
//6.关闭资源
session.close();
}
5.3 查询结果
Hibernate: select count(*) as y0_ from tb_user2 this_ 总条数:6
相关文章推荐
- SSH与SSM学习之hibernate13——HQL查询
- 【SSH】Hibernate学习(四)HQL语法、Criteria查询、查询优化
- SSH与SSM学习之hibernate21——离线查询
- SSH与SSM学习之hibernate03——主配置详解
- Hibernate的学习之路十八(Criteria的查询简单)
- SSH与SSM学习之hibernate12——hibernate中的事务
- SSH与SSM学习之hibernate20——多对多操作
- Hibernate学习总结(6)——Criteria查询
- SSH与SSM学习之hibernate24——关联级别加载策略之属性关联加载策略
- Hibernate的学习之路十八(Criteria的查询简单)
- SSH与SSM学习之hibernate19——多对一一对多关系维护
- Hibernate的学习之路十八(Criteria的查询简单)
- SSH与SSM学习之Spring14——动态代理之自己的AOP框架
- ssh学习:hibernate中 HQL基本 查询
- SSH与SSM学习之hibernate01——介绍与环境搭建
- Hibernate的学习之路十八(Criteria的查询简单)
- Hibernate的学习之路十八(Criteria的查询简单)
- SSH与SSM学习之hibernate11——hibernate的二级缓存
- SSH与SSM学习之SSH整合05——单独配置Hibernate
- Hibernate的学习之路十八(Criteria的查询简单)