精通Hibernate Criteria查询:对象化检索与模糊匹配
需积分: 9 103 浏览量
更新于2024-08-18
收藏 2.18MB PPT 举报
"本章主要探讨了如何使用Hibernate进行数据检索,特别是重点讲解了Criteria查询的使用。Criteria查询允许以对象的方式构建查询,提供了一种更面向对象的查询方式,适用于不熟悉SQL或者希望避免硬编码SQL的情况。此外,本章还提到了HQL(Hibernate查询语言)作为另一种查询手段,并解释了为何会使用HQL及其基本用法。"
在Hibernate中,Criteria查询是一种强大的查询机制,它允许开发者以编程的方式构建查询,而不是直接写SQL语句。这种查询方式使得代码更加灵活,易于维护,尤其是在动态构建查询条件时。以下是使用Criteria查询的一些关键点:
1. 创建Criteria对象:首先,你需要通过Session对象的createCriteria()方法创建Criteria对象,这代表了你想要查询的实体类。
2. 模糊查询:你可以添加Restrictions对象来实现模糊查询,如使用like方法配合通配符%来实现部分匹配。
3. 大于等于和小于等于:使用gt("property", value)和lt("property", value)方法可以设置大于或小于等于的条件。
4. 支持in和between:Criteria查询也支持in操作,通过inList("property", values)方法可以指定属性值在某个列表内。对于between操作,可以使用between("property", lowerBound, upperBound)方法。
5. 数组类型:如果查询涉及到数组类型的属性,Hibernate提供了专门的方法来处理,例如inArray("property", array)。
6. 类似EL表达式的属性浏览语法:Criteria查询允许类似表达式式的方式来访问对象的属性,比如.createCriteria("relatedEntity").add(Restrictions.eq("property", value)),这会查询与当前实体关联的对象的某个属性。
7. 排序规则:Criteria查询可以添加多个Order对象来指定排序规则,例如.addOrder(Order.asc("property"))或.addOrder(Order.desc("property"))。
在HQL查询方面,它是Hibernate的专用查询语言,更接近于面向对象,可以直接使用Java实体类的名字而不是表名。使用HQL的基本步骤包括:
1. 获取Session:首先,你需要通过SessionFactory创建一个Session实例。
2. 编写HQL语句:然后,根据需求编写HQL查询,HQL语句的结构类似SQL,但面向对象,比如`from tbl_FWXX`。
3. 创建Query对象:使用Session的createQuery()方法,传入HQL语句来创建Query对象。
4. 执行查询:最后,调用Query对象的list()或uniqueResult()方法来执行查询并获取结果。
HQL支持别名,可以使用`select fw from TblFWXX as fw`这样的形式,其中fw是别名,简化了查询语句。它还可以选择性地包含或省略select子句,直接从实体类中获取全部字段。
本章的示例场景涵盖了房屋查询,包括对标题的模糊查询、街道的精确查询、租金的范围查询以及特定联系人的街道信息查询,同时也提到了分页查询的实现,这些都是在实际开发中非常常见的需求。通过学习和熟练掌握这些内容,开发者能够更有效地利用Hibernate进行数据检索。
2019-04-26 上传
2019-04-26 上传
2023-06-21 上传
2021-02-18 上传
2008-01-13 上传
2021-04-10 上传
2021-05-30 上传
2021-05-21 上传
2012-07-26 上传
无不散席
- 粉丝: 32
- 资源: 2万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜