SSH与SSM学习之hibernate14——Criteria查询
来源:互联网 发布:剑灵热巴数据 编辑:程序博客网 时间:2024/06/09 23:25
- SSH与SSM学习之hibernate14Criteria查询
- 一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基本查询 */@Testpublic 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这个类的方法
=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 */@Testpublic 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分页 */@Testpublic 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查询总记录数 */@Testpublic 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
阅读全文
0 0
- SSH与SSM学习之hibernate14——Criteria查询
- SSH与SSM学习之hibernate13——HQL查询
- SSH与SSM学习之hibernate21——离线查询
- SSH与SSM学习之hibernate15——SQL原生查询
- SSH与SSM学习之hibernate04——Configuration
- SSH与SSM学习之hibernate05——SessionFactory
- SSH与SSM学习之hibernate06——Session
- SSH与SSM学习之hibernate07——Transaction
- SSH与SSM学习之hibernate25——批量抓取
- SSH与SSM学习之Struts206——参数获取
- SSH与SSM学习之Struts211——拦截器
- SSH与SSM学习之Struts212——标签
- SSH与SSM学习之Spring15——cglib代理
- SSH与SSM学习之SSH整合01——SSH整合原理和导包
- SSH与SSM学习之SSH整合04——Struts2与Spring整合
- SSH与SSM学习之SSH整合06——Hibernate与Spring整合
- SSH与SSM学习之SSH整合02——单独配置Spring容器
- SSH与SSM学习之SSH整合03——单独配置Struts2
- 51单片机+ESP8266-01WIFI模块实现数据传输
- CreateToolhelp32Snapshot详解
- Hibernate 常用 API
- html之间传递参数
- 第三周周末总结
- SSH与SSM学习之hibernate14——Criteria查询
- tr、wc、uniq、grep、diff
- ZooKeeper中的数据模型
- UVA 101 The Blocks Problem
- PAT-1133 Splitting A Linked List(链表分解)
- 拓扑排序
- 第三周项目1
- 织梦cms 5.7文章内容关键词自定义长度修改
- Java LinkedHashMap 有序