五:Hibernate主键(ID)的生成策略 (重点掌握AUTO)
使用xml的配置:<id name="" ><generator name="native"/></id>
常用的四个:native,identity,sequence,uuid
使用注解的配置:@GeneratedValue
1)自定义ID 使用@Id
2)AUTO
方法1:@Id @GeneratedValue
方法2:@Id @GeneratedValue(strategy=GenerationType.AUTO)
使用java的数据类型和数据库的数据类型对应值自动生成数据库表中的主键
一般默认,对MYSQL,使用auto_increment,对oracle使用了hibernate_sequence(名称固定)
3)IDENTITY
@GeneratedValue(strategy=GenerationType.IDENTITY) mysql,sqlserver
4)SEQUENCE (@Sequencegenerator)
@SequenceGenerator(
name="SEQ_SHOPCONFIG", //此Sequence Generator的名称
sequenceName="SEQ_DB_SHOP_CONFIG" //存储到数据库的SEQUENCE的名称 使用于oracle
)
@GeneratedValue(strategy=GenerationType.SEQUENCE) oracle
javax.persistence.sequencegenerator
@SequenceGenerator(name="生成器名称",sequenceName="生成器数据库名称")
在get方法上面使用@GeneratorValue(stragegy=GeneraterType.SEQUENCE,name="生成器名称")
5)TABLE (@TableGenerator)
@TableGenerator(
name="TBL_SHOPCONFIG",
table="GENERATOR_TABLE",
pkColumnName = "key",
valueColumnName = "value",
pkColumnValue="SHOPCONFIG",
allocationSize=1
)
@Entity
@Table(name="shop_config")
@Id @GeneratedValue(strategy=GenerationType.TABLE,generator="TBL_SHOPCONFIG") oracle
6)联合主键(两个字段作为主键)理解掌握
a)xml: <composite-id></composite-id>
联合主键需要新建一个需要实现联合主键的类在本类中实现序列化和重写equals,hashCode保证唯一性。
问题:为什么要使用序列化
答:数据的同步。
b)annotation:
见源代码
六:核心开发接口(重点)
学习要有有的放矢
掌握核心开发接口必须要掌握三种对象状态,反之亦然
1)Configuration
2)SessionFactory
面试中:hibernate 的openSession和getCurrentSession的区别
答:openSession()建立的session永远都是不同的session。
使用getCurrentSession() 在上下文中找,如果有则使用,没有则建立 (还未关闭session,则当前session和其他的未关闭的session都是一样的)。
getCurrentSession()的用途:是使用界定事物边界。什么是界定事物边界。
openSession()使用完成之后需要close(),getCurrentSession()事物提交字段close
切记:面试会问到:openSession()永远是打开新的session。getCurrentSession()如果当前环境有session则拿当前环境的session,否则创建新session.
什么是上下文 即是:current_session_context_class(jta thread)
什么叫分布式就是分布在多台不同的数据库服务器上
事物分为两种:一种是依赖数据库本身的。二种是分布式
JTA:JAVA TRANSACTION API
Session (动手实践,实际开发使用)
编程开发接口:save,delete,get,load,update,saveOrUpdate,clear,flush,schemaExport
get和load的区别:(重点)
1:不存在对应记录是表现不一样
2:load返回的是代理对象,等到真正用到对象的内容时才发出SQL语句。
3:get直接从数据库加载,不会延迟
clear方法:1:无论是load,get,都是首先查找缓存(一级缓存),如果没有,才会去数据库查找,调用clear()方法可以强制清除session缓存。
flush方法:可以强制进行从内存到数据库的同步。
务必理解:动态代理模式(核心基础知识为:泛型,反射)
七:三种对象状态
三种状态的理解,务必理解。
分享到:
相关推荐
DmDialect-for-hibernate2.0、DmDialect-for-hibernate2.1、DmDialect-for-hibernate3.0、DmDialect-for-hibernate3.1、DmDialect-for-hibernate3.6、DmDialect-for-hibernate4.0、DmDialect-for-hibernate5.0、...
jar包在dialect目录下: 1. DmDialect-for-hibernate2.0.jar 对应 Jdk1.4及以上, hibernate2.0 环境 2. DmDialect-for-hibernate2.1.jar 对应 Jdk1.4及以上, hibernate2.1 -- 2.X 环境 3. DmDialect-for-hibernate3.0...
Hibernate 实战 第2版 PDF 带目录
资源名称:佟刚hibernate视频教程(26集)资源目录:【】兄弟连_佟刚_Hibernate【】兄弟连_佟刚_hibernate视频(01-05)【】兄弟连_佟刚_hibernate视频(06-10)【】兄弟连_佟刚_hibernate视频(11-15)【】兄弟连_佟刚_...
Hibernate5用户手册中文版(带目录书签).... Hibernate5用户手册、 Hibernate5用户手册、中文版
菜单window -> preference -> Java -> Build Path -> User Librarys,分别建立名为Hibernate2,hibernate3,mysql-jdbc的用户库,分别包含对应的lib文件(如hibernate2包含hibernate-2.1目录下的hibernate2.jar及其lib...
案例目录: 01 01Hibernate_Handwork : 手工配置使用Hibernate,其中详细标了Hibernate进行持久化的一些过程,因为是Hibernate的入门实例,所以注释很详细,其中有session的关闭后重建问题。 02 02Hibernate_...
目录 第1部分 持久层 第1章 面向应用的持久层设计 1.1 持久层概述 1.2 持久层设计 1.3 持久层设计与ORM 1.4 持久层框架概述 第2部分 Hibernate 第2章 Hibernate概述 第3章 快速起步 3.1 准备工作 3.2 ...
配置一个新的配置项,输入配置项的名称MyHibernateCode,选择Hibernate Configuration(即已配好的Hibernate控制台配置),在Output directory中输入反向代码输出目录(注意这个目录一般只需项目的源代码src),然后...
目录 课程内容 1 HelloWorld 2 Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping 3 常见的0/R框架(了解) 4 hibernate基础配置(重点) 5 ID生成策略(重点 AUTO) 6 Hibernate核心开发...
下载Hibernate,例如2.0.3稳定版本,解压缩,可以看到一个hibernate2.jar和lib目录下有22个jar包: hibernate2.jar: Hibernate的库,没有什么可说的,必须使用的jar包 cglib-asm.jar: CGLIB库,...
目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和...
解压缩从Hibernate网站下载的Hibernate发布包,并把/lib目录下所有需要的库文件拷到我们新建开发目录下的/lib目录下。看起来就像这样: . +lib antlr.jar cglib.jar asm.jar asm-attrs.jars commons-...
HIBERNATE - 符合Java习惯...本指南的源代码包含在发行包中,你可以在doc/reference/tutorial/目录下找到。 阅读第 2 章 体系结构(Architecture)来理解Hibernate可以使用的环境....................................
hibernate_3.5.6_中文帮助文档(有目录)_Final,学习hibernate时,值得读一下.
资源名称:Hibernate框架技术文档资料汇总资源目录:【】EJB3.0实例教程【】HeadFirstHibernate【】Hibernate In Action【】Hibernate【】hibernate【】Hibernate【】Hibernate3.1.2中文文档【】Hibernate3.2官方...
hibernate 3.6.10 final。大小五十多兆,相当完整。比起那些大小十多兆就...目录文件:1.documentation 2.lib 3.project 4.hibernate3.jar 5.hibernate-testing.jar 6.changelog.txt 7.hibernate_logo.gif 8.lgpl.txt
本书深入地介绍了Hibernate 实现ORM 的关键技术,包括Hibernate 的底层技术、Hibernate 的实 现架构、Hibernate 的配置和使用方法、EJB3.0 技术和基于Hibernate 的开发实例。通过本书,可以全 面了解Hibernate 的...
目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和...
目录 <br>前言 1. 翻译说明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成...