shop++ CriteriaQuery 数据库查询语句
2015-09-06 16:54
309 查看
hibernate 的criteria 查询语句是一种更加面向对象的方式查询。
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); //创建一个entityManager创建一个CriteriaBuilder 实列CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(entityClass);//criteriaBuilder创建一个createQuery实列,CriteriaQuery被赋予泛型,泛型参数申明CriteriaQuery在执行时返回的结果的类型。
criteriaQuery.select(criteriaQuery.from(entityClass)); //在criteriaQuery上设置查询表达式
return findList(criteriaQuery, first, count, filters, orders);//返回结果集
hibernate 中的JPQL 语句
String jpql = "select count(*) from Agent agent where lower(agent.name) = lower(:name)";//创建JPQL 语句,(应当注意的是from后边的Agent 是实体Bean而不是数据表。)
Long count = entityManager.createQuery(jpql, Long.class)//通过entityManager获取一个createQuery实列,第一个位置是JPQL 语句,第二个位置是反射对象 这个对象就是返回值的类型 .setFlushMode(FlushModeType.COMMIT).setParameter("name", name)//查询执行时刷新. 设置查询参数.getSingleResult();//返回单个结果
通过两种语句之间的比较可以加深深刻的理解CriteriaQuery 查询语句, 当然前提是必须能熟悉一种语言。在shop++程序中,在使用一般查询的时候还是建议用JPQL语句来实现,因为比如说实现实现一个简单的查询还要创建entityManager
然后再创建一个createQuery实列。。这样就无形中增加了代码,而且代码执行效率也会降低不少。当然如果是想做一个稍微复杂点的查询,比如动态查询,需要增加多个条件数量,排序等等的条件查询都是可以用CriteriaQuery查询语句的。
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); //创建一个entityManager创建一个CriteriaBuilder 实列CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(entityClass);//criteriaBuilder创建一个createQuery实列,CriteriaQuery被赋予泛型,泛型参数申明CriteriaQuery在执行时返回的结果的类型。
criteriaQuery.select(criteriaQuery.from(entityClass)); //在criteriaQuery上设置查询表达式
return findList(criteriaQuery, first, count, filters, orders);//返回结果集
hibernate 中的JPQL 语句
String jpql = "select count(*) from Agent agent where lower(agent.name) = lower(:name)";//创建JPQL 语句,(应当注意的是from后边的Agent 是实体Bean而不是数据表。)
Long count = entityManager.createQuery(jpql, Long.class)//通过entityManager获取一个createQuery实列,第一个位置是JPQL 语句,第二个位置是反射对象 这个对象就是返回值的类型 .setFlushMode(FlushModeType.COMMIT).setParameter("name", name)//查询执行时刷新. 设置查询参数.getSingleResult();//返回单个结果
通过两种语句之间的比较可以加深深刻的理解CriteriaQuery 查询语句, 当然前提是必须能熟悉一种语言。在shop++程序中,在使用一般查询的时候还是建议用JPQL语句来实现,因为比如说实现实现一个简单的查询还要创建entityManager
然后再创建一个createQuery实列。。这样就无形中增加了代码,而且代码执行效率也会降低不少。当然如果是想做一个稍微复杂点的查询,比如动态查询,需要增加多个条件数量,排序等等的条件查询都是可以用CriteriaQuery查询语句的。
相关文章推荐
- Hibernate Oracle sequence的使用技巧
- jsp Hibernate批量更新和批量删除处理代码
- jsp hibernate的分页代码第1/3页
- JAVA+Hibernate 无限级分类
- SSH整合中 hibernate托管给Spring得到SessionFactory
- jsp hibernate 数据保存操作的原理
- hibernate中的增删改查实现代码
- 解决hibernate+mysql写入数据库乱码
- java优化hibernate性能的几点建议
- java Hibernate延迟加载
- hibernate 常用方法介绍
- 深入理解Hibernate中的flush机制
- 解析使用jdbc,hibernate处理clob/blob字段的详解
- 浅析java程序中hibernate的应用总结
- java面试常见问题之Hibernate总结
- 关于Hibernate的一些学习心得总结
- Hibernate管理Session和批量操作分析
- 基于spring+hibernate+JQuery开发之电子相册(附源码下载)
- java Hibernate 一对多自身关联问题
- SpringMVC+MyBatis项目总结(二)