Hibernate估计大家已经用过很多年了吧,好多同学说用过Hibernate,不需要你来讲,但再仔细想想,你能告诉我Hibernate是什么吗?
今天带大家重新认识一下你认识的Hibernate。
1/6
Hibernate 概述:持久化对象的生命周期
Transient Objects:使用new 操作符初始化的对象不是立刻就持久的。它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所引用),它们的状态将会丢失,并由垃圾回收机制回收。
Persist Objects:持久实例是任何具有数据库标识的实例。它有持久化管理器Session统一管理,持久实例是在事务中进行操作的——它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQL的INSERT、UPDATE和DELETE语句把内存中的状态同步到数据库中。
Detached Objects:Session关闭之后,持久化对象就变为detached对象。表示这个对象不能再与数据库保持同步,它们不再受Hibernate管理。
1/6
Hibernate 概述:Hibernate基本数据类型
1/6
Hibernate 概述:Hibernate大对象数据类型
在java中,java.lang.String可以用来表示长字符串(长度超过255),字节数组byte[]可以用来存放图片或文件的二进制数据。此外在JDBCAPI中还提供了java.sql.Clob和java.sql.Blob类型,分别和标准SQL的CLOB和BLOB类型相对应。CLOB表示字符串大对象(CharacterLarger Object),BLOB表示二进制大对象(BinaryLarger Object)
1/6
Hibernate 概述:Hibernate主键策略
Hibernate主键的映射标签的DTD文档如下
name CDATA #IMPLIED
node CDATA #IMPLIED
access CDATA #IMPLIED
column CDATA #IMPLIED
type CDATA #IMPLIED
length CDATA #IMPLIED >
典型的主键映射代码如下
Hibernate对主键的管理分为三大类
1.Hibernate对主键id赋值
2.应用程序自己对主键id赋值
3.由数据库对主键id赋值
1/6
Hibernate 概述:Hibernate主键策略
标签的可选元素子元素是一个java类的名字,用来为该持久化类的实例生成唯一的标识,所有的生成器都实现org.hibernate.id.IdentifierGenerator接口。Hibernate提供了很多内置的实现类。
1.assigned:主键由外部程序负责生成,无需Hibernate参与,主键由应用逻辑产生,实体对象再保存之前,必须显式的设置OID,主键的产生无需Hibernate的干预
2.Increment:hibernate将按照递增的方式设定主键,具体的方式是
先获取当前记录主键的最大值,然后再将该值加1作为主键。
3.Identity:表示数据库的主键生成方式为采用数据库的主键生成机制,例如SQLServer或MySQL的自动主键生成机制。
4.Sequence:这种方式针对由序列方式产生主键的数据库,例如Oracle。在的子元素
指定用作产生主键的序列名称。
H_SOME_SEQUENCE
5.Native:意味着将主键的生成机制交由Hibernate决定,Hibernate会根据配置文件中的方言(Dialect)定义,采用不同的数据库特定的主键生成方式。这是我们最常使用的方式
H_SOME_SEQUENCE
请留下你指尖的温度,按下右键二维码关注
公众号:全华班
记得这是一个专注技术的公众号
声明:本文章属于个人原创,转载请注明文章出处。
往期好文
领取专属 10元无门槛券
私享最新 技术干货