




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hibernate查询方式一、Hibernate的三种查询方式1.HQL (Hibernate Query Lanuage) 语句,这是类似SQL语句的一种对象化查询语句.2.使用Criteria对象,进行按条件查询(Query by Criteria,简称QBC)和按示例查询(Query by Example 简称QBE).3.生成原生的sql(Native SQL)语句.二、Criteria的基本使用Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. Listlist=criteria.list();4. mit();查询Testbook 中所有的数据,然后返回三、Criteria 接口的核心方法add() 增加一个代表查询条件的Criterion对象addOrder() 增加一个代表排序的Criterion对象createAlias() 创建关联查询,为所关联的持久化类建立别名createCriteria() 在相互关联的持久化类之间建立条件约束setFirstResult() 设定要获取的第一条记录的位置setMaxResults() 设定要获取的记录的最大数量list() 获取满足查询条件的记录的集合uniqueResult() 获取满足查询条件的唯一记录四、对查询结果进行排序Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class).add(3. Restrictions.like(name,任%).add(Restrictions.between(id,1000,1010);4. criteria.addOrder(Order.desc(id).addOrder(Order.asc(createdTime);5. Listlist=criteria.list();6. mit();五、实现分页显示数据Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class).add(3. Restrictions.like(name,任%);4. criteria.addOrder(Order.desc(id);5. criteria.setMaxResults(30);6. criteria.setFirstResult(10);/setFirstResult()从0开始计数7. Listlist=criteria.list();8. mit();六、只查询一条记录Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class).add(3. Restrictions.like(name,任%);4. criteria.addOrder(Order.desc(id);5. criteria.setMaxResults(1);6. Testbooktb=(Testbook)criteria.uniqueResult();7. mit();七、Restrictions类HQL运算符QBC运算符含义=Restrictions.eq()等于equalRestrictions.ne()不等于not equalRestrictions.gt()大于greater than=Restrictions.ge()大于等于greater than or equalRestrictions.lt()小于less than=Restrictions.le()小于等于less than or equalis nullRestrictions.isnull()等于空值is not nullRestrictions.isNotNull()非空值likeRestrictions.like()字符串模式匹配andRestrictions.and()逻辑与andRestrictions.conjunction()逻辑与orRestrictions.or()逻辑或orRestrictions.disjunction()逻辑或notRestrictions.not()逻辑非in(列表)Restrictions.in()等于列表中的某一个值not in(列表)Restrictions.not(Restrictions.in()不等于列表中任意一个值between x and yRestrictions.between()闭区间xy中的任意值not between x and yRestrictions.not(Restrictions.between()小于值X或者大于值y八、条件或方式组合查询条件Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. Criterioncriterion1=Restrictions.or(Restrictions.like(name,任%),4. Restrictions.between(id,1000,1010);5. criteria.add(criterion1);6. Listlist=criteria.list();7. mit();九、使用原生SQL语句设定查询条件Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. criteria.add(Restrictions.sqlRestriction(=?,Narcissus,Hibernate.STRING);4. Listlist=criteria.list();5. mit()十、统计函数查询Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. criteria.setProjection(Projections.max(price);4. DoublemaxValue=(Double)criteria.uniqueResult();5. mit();6. System.out.println(maxValue);十一、统计函数组合查询条件Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. criteria.setProjection(Projections.max(price);4. DoublemaxValue=(Double)criteria.uniqueResult();5. mit();6. System.out.println(maxValue);十二、获取多个统计函数的值Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. ProjectionListproList=PjectionList();4. proList.add(Projections.max(price);5. proList.add(Projections.min(price);6. proList.add(Projections.avg(price);7. proList.add(Projections.sum(price);8. proList.add(Projections.count(price);9. proList.add(Projections.countDistinct(price);10. proList.add(Projections.rowCount();11. criteria.setProjection(proList);12. Objectvalues=(Object)criteria.uniqueResult();13. mit();十三、分组查询Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. criteria.setProjection(Projections.groupProperty(price);4. Listlist=criteria.list();5. mit();十四、分组统计Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. ProjectionListproList=PjectionList();4. proList.add(Projections.rowCount();/商品的个数5. proList.add(Projections.sum(price);6. proList.add(Projections.groupProperty(name);7. criteria.setProjection(proList);8. Listlist=criteria.list();9. mit();十五、投影查询在一个表中有很多个字段,投影查询只是查询某一个或多个字段,也称局部查询Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. criteria.setProjection(Property.forName(price);4. criteria.add(Restrictions.gt(price,newDouble(40.0)5. Listlist=criteria.list();6. mit();十六、使用Property类的forName()方法实现分组统计Java代码1. Transactiontx=session.beginTransaction();2. Criteriacriteria=session.createCriteria(Testbook.class);3. ProjectionListproList=PjectionList();4. proList.add(Projections.forName(price).max();5. proList.add(Projections.forName(price).min();6. proList.add(Projections.forName(price).avg();7. proList.add(Projections.forName(category.id).group().as(c);8. criteria.setProjection(proList);9. criteria.addOrder(Order.desc(c);10. Listlist=criteria.list();11. mit();十七、使用DetachedCriteria对象实现离线查询Java代码1. /在表现层,构造DetachedCriteria对象,保存用户动态的查询条件2. DetachedCriteriadetchedCriteria=DetachedCriteria.forClass(Testbook.class);3. detchedCriteria.add(Restrictions.like(name,任%).add(Restrictions.between(id,newInteger(1),newInteger(10);4. detchedCriteria.addOrder(Order.desc(id);5. 6. /在业务逻辑层,DetachedCriteria对象与当前的Session对象进行绑定,获取查询结果7.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.1 DNA是主要遗传物质教学设计-2023-2024学年高一下学期生物人教版必修二
- 2025国税公务员面试题及答案
- 2025公务员执法稽查面试题及答案
- 事业单位停薪留职期间知识产权保护合同
- 2025至2030中国生物医药干细胞及NK防疫技术行业发展趋势分析与未来投资战略咨询研究报告
- 建筑装饰浮雕设计与施工合同详细多条款
- 2025至2030中国立式锅炉给水泵行业项目调研及市场前景预测评估报告
- 2025至2030中国公共部门高级身份验证行业产业运行态势及投资规划深度研究报告
- 售楼处概念方案汇报
- 2025至2030中国小口径人工血管行业项目调研及市场前景预测评估报告
- 基于Spring Boot的服装店铺管理系统论文
- PLC基础知识入门课件
- 企业统借统还管理制度
- 蜂窝无源物联网标签技术白皮书
- 招聘中的大数据分析与精准匹配
- 盆底重建术并发症
- 2025年全国统一高考语文试卷(全国一卷)含答案
- 教育事业十五五(2026-2030)发展规划
- 安e赔考试试题及答案
- 农业产业绿色发展的技术与政策支持研究报告
- 达州市达川区土地收购储备中心达州市南城中心组团片区C34-02地块土壤污染状况调查报告
评论
0/150
提交评论