Criteria
来源:互联网 发布:网络机顶盒爱奇艺会员 编辑:程序博客网 时间:2024/04/30 23:06
Hibernate之Criteria查询:
由于采用Hql语句查询,会发出多余的sql命令,查询效率低,所以我们采用Criteria查询,效率比较高。
Criteria查询的基本语句如下:
Criteria criteria=session.createCriteria(Emp.class);
criteria.add(Restrictions.like("name", "张%"));
List<Emp> list=criteria.list();
第一句话是得到这个类,第二句话就是添加条件,Restrictions.like("name", "张%")表示姓名中以“张”开头的。
最后返回一个list对象。
1.Criteria多条件查询:
代码如下:
Session session = HibernateUtil.getSession();
Criteria criteria = session.createCriteria(Emp.class).add(
Restrictions.like("name", "张%")).createCriteria("dept").add(
Restrictions.eq("name", "市场部"));
List<Emp> list = criteria.list();
这是一个级联查询。首先查询了Emp中姓名以“张”开头的,后面还查询了dept中姓名是“市场部”。eq表示“=”
2.Criteria投影查询:
Session session = HibernateUtil.getSession();
Projection projection = Projections.projectionList().add(
Property.forName("e.name")).add(Property.forName("d.name"));
Criteria criteria = session.createCriteria("Emp", "e").setProjection(
projection).createAlias("dept", "d").add(
Restrictions.like("e.name", "张%")).createCriteria("dept").add(
Restrictions.eq("d.name", "市场部"));
List<Object[]> list = criteria.list();
返回的是一个list类数组。
3.Crateria数量查询:
Session session = HibernateUtil.getSession();
Criteria criteria = session.createCriteria(Emp.class);
Integer count = (Integer) criteria
.setProjection(Projections.rowCount()).uniqueResult();
由于采用Hql语句查询,会发出多余的sql命令,查询效率低,所以我们采用Criteria查询,效率比较高。
Criteria查询的基本语句如下:
Criteria criteria=session.createCriteria(Emp.class);
criteria.add(Restrictions.like("name", "张%"));
List<Emp> list=criteria.list();
第一句话是得到这个类,第二句话就是添加条件,Restrictions.like("name", "张%")表示姓名中以“张”开头的。
最后返回一个list对象。
1.Criteria多条件查询:
代码如下:
Session session = HibernateUtil.getSession();
Criteria criteria = session.createCriteria(Emp.class).add(
Restrictions.like("name", "张%")).createCriteria("dept").add(
Restrictions.eq("name", "市场部"));
List<Emp> list = criteria.list();
这是一个级联查询。首先查询了Emp中姓名以“张”开头的,后面还查询了dept中姓名是“市场部”。eq表示“=”
2.Criteria投影查询:
Session session = HibernateUtil.getSession();
Projection projection = Projections.projectionList().add(
Property.forName("e.name")).add(Property.forName("d.name"));
Criteria criteria = session.createCriteria("Emp", "e").setProjection(
projection).createAlias("dept", "d").add(
Restrictions.like("e.name", "张%")).createCriteria("dept").add(
Restrictions.eq("d.name", "市场部"));
List<Object[]> list = criteria.list();
返回的是一个list类数组。
3.Crateria数量查询:
Session session = HibernateUtil.getSession();
Criteria criteria = session.createCriteria(Emp.class);
Integer count = (Integer) criteria
.setProjection(Projections.rowCount()).uniqueResult();
主要用了一个rowCount()函数。
0 0
- Criteria
- criteria
- Criteria
- criteria
- criteria
- Criteria
- criteria
- Criteria
- Hibernate---Criteria
- Hibernate---Criteria
- Criteria Query
- Criteria 進階查詢
- Criteria使用指南
- Hibernate---Criteria
- Criteria Query
- Criteria接口
- Criteria 使用指南
- Criteria教程
- Android 网络框架_目前(2016年11月7日)最流行的网络框架OKHttp3
- Win10+VS2013+CUDA8.0编译运行例程(.cu)出现error MSB4062:未能从程序集...问题的解决
- 使用Java操作数据库的步骤
- 如何使用migrate进行数据库升级
- java之旅之初识java
- Criteria
- linux 安装 redis
- 占位
- HibernateTools插件安装
- 邮箱地址的自动匹配
- 贪吃蛇
- DBconnection连接不上
- linux shell 学习(三)——判断文件和文件夹
- TCP中的三次握手