深入理解Java框架Hibernate:get与load、hbm2ddl.auto与主键策略
需积分: 9 39 浏览量
更新于2024-09-15
收藏 29KB PDF 举报
next_hi"),Hibernate会在该表中存储一个高低位值,以此来生成主键。这种方式适合大量插入,但需要额外的数据库交互。
4.identity
由数据库自身来生成标识符(比如MySQL的 AUTO_INCREMENT 或 SQL Server 的 identity)。这需要数据库支持。
5.sequence
使用数据库序列来生成标识符。Oracle 和 PostgreSQL 支持这种策略。
6native
询问数据库能提供哪种策略(identity, sequence 或 hilo),然后使用它。这种方式依赖于数据库特性。
7.uuid.hex
生成16进制表示的UUID字符串。
8.uuid.string
生成可读的UUID字符串。
9increment
在应用级别上进行递增,不适合多线程环境,因为可能会导致冲突。
10.table
使用一个数据库表来保存一个计数器,每次需要主键时,从表中取出一个值并增加。这种方式在多进程并发环境下较为安全。
四:持久化类的状态
Hibernate将持久化类的对象分为三种状态:
1.瞬态(Transient):刚创建的对象,还没有与Session关联,不具备持久性,修改不会被持久化。
2.持久化(Persistent):对象已经被持久化,存在于Session缓存中,与数据库中的记录对应。对象的任何改变都会同步到数据库。
3.脱管(Detached):对象曾经是持久化的,但Session已经关闭,对象依然存活,但不再是持久化状态。可以通过重新attach到新的Session来恢复持久化状态。
五:事务管理
Hibernate提供了基于JTA(Java Transaction API)和基于JDBC的事务管理。在企业级应用中,通常会结合应用服务器使用JTA进行分布式事务处理。
六:缓存机制
Hibernate支持一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存)。一级缓存默认开启,二级缓存需配置第三方缓存插件如Ehcache或Infinispan。
七:查询语言
Hibernate支持HQL(Hibernate Query Language),一种面向对象的查询语言,以及SQL直接操作。HQL更加接近面向对象思维,而SQL则更底层,直接操作数据库。
总结,Java框架中的Hibernate是一个强大的ORM(Object-Relational Mapping)工具,通过映射关系数据库和Java对象,简化了数据访问层的开发。它提供了丰富的API和配置选项,包括延迟加载、主键生成策略、事务管理以及多种查询方式,使得开发者能够更高效地处理数据库操作。在实际项目中,理解并熟练运用这些知识点对于提升开发效率和代码质量至关重要。
2012-07-15 上传
2018-10-17 上传
2018-07-02 上传
2020-12-22 上传
2024-10-01 上传
2024-09-25 上传
2009-04-22 上传
LS4538
- 粉丝: 0
- 资源: 5
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析