Hibernate基础教程:查询条件与表达式
需积分: 9 117 浏览量
更新于2024-08-23
收藏 2.51MB PPT 举报
"这篇教程主要介绍了Hibernate框架中查询条件中的表达式使用,包括HQL中的各种运算符和逻辑操作,以及对象的创建方式和事务管理。同时提到了JTA(Java Transaction API)以及Hibernate中对象状态的管理。"
在Hibernate框架中,查询条件的表达式是构建HQL(Hibernate Query Language)查询的重要组成部分。HQL是面向对象的查询语言,它允许开发者使用类名和属性名来编写查询,而不是直接操作数据库表和列。在HQL的where子句中,我们可以使用多种运算符来构建复杂的查询条件:
1. 数学运算符:包括`+`、`-`、`*`和`/`,用于进行算术计算。
2. 二进制比较运算符:如`=`、`>=`、`<=`、`<>`、`!=`,以及`like`用于字符串的模式匹配。
3. 逻辑运算符:`and`、`or`和`not`,用于组合多个条件。
4. 特殊运算符:如`in`、`not in`、`between`、`is null`、`is not null`、`is empty`、`is not empty`、`member of`和`not member of`,这些运算符提供了更多的查询可能性。
此外,Java代码中创建对象有两种常见方式:`new`关键字和`newInstance()`方法。`new`关键字直接创建一个新的对象实例,而`newInstance()`方法是基于反射机制,它需要类已经被加载和连接。在某些场景下,如动态加载类或在不确定具体类的情况下,`newInstance()`更加灵活。
Java事务API (JTA) 是Java平台上的标准事务管理接口,它提供了一种在分布式环境中管理事务的方式。在Hibernate中,对象有三种状态:持久化态、游离态和瞬时态。不同的状态会影响对象与数据库之间的交互:
- 游离状态的实例可以通过`save()`, `persist()`, 或 `saveOrUpdate()`方法变为持久化状态。
- 持久化状态的实例通过`delete()`方法会变为游离状态。
- 通过`get()`或`load()`获取的实例默认是持久化状态。
- 游离状态的对象可以通过`update()`, `saveOrUpdate()`, `lock()`, 或 `replicate()`方法重新变为持久化。
- `save()`, `persist()`会在数据库中插入记录,`delete()`会删除记录,而`update()`或`merge()`则会更新记录。
- `saveOrUpdate()`和`replicate()`会根据对象的状态决定执行`INSERT`或`UPDATE`操作。
示例代码展示了如何使用HQL和原生SQL查询。`createSQLQuery()`方法用于构建原生SQL查询,执行后返回的结果集可以通过转换为List处理。
本教程涵盖了Hibernate中的查询表达式、对象状态管理和事务处理的基础知识,是学习Hibernate框架不可或缺的一部分。了解并熟练掌握这些概念对于开发Java应用程序,特别是涉及到数据库操作的场景,是非常重要的。
2019-04-26 上传
132 浏览量
286 浏览量
点击了解资源详情
195 浏览量
232 浏览量
点击了解资源详情
点击了解资源详情
111 浏览量
小炸毛周黑鸭
- 粉丝: 25
- 资源: 2万+
最新资源
- talks:我讲过的各种演讲的幻灯片和资料
- ColorRampGenerator:色带生成器
- 具有dnssec支持的重要隐私,快速递归的dns解析器服务器-Golang开发
- ASP人才网内容管理系统(源代码+论文).zip
- 梅吉特
- Google浏览器安装包
- favicon-badge:一个Polymer元素,用于使用动态设置的数字声明式更新Webapp的favicon。
- react-way-immutable-flux:使用ES6,Immutable.js和Flux的React.js方法
- Trubble
- testina
- uskzvqgn.zip_相位跟踪
- my-plugin-manager:用于WordPress主题或插件的嵌入式脚本,为您的用户提供一个界面,以管理您建议与产品一起使用的插件
- 用数组实现一个线性表.zip
- Gx00_83-05-33-SNMP.zip
- imersaodev-conversoranosluz:每天从法拉利岛(Códigofeitotambémna1ª)出发。 Us programa em que quee convert anos luz emquilômetrose assim poder saber adistânciade planetas e astros
- [Android实例] Android 竖着的SeekBar.rar