Hibernate笔记

来源:互联网 发布:淘宝预售资质申请入口 编辑:程序博客网 时间:2024/04/29 23:22

Hibernate笔记

 

Hibernate所必须的jar包:

l  cglib-2.1.jarasm-attrs.jarasm.jarCGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包。

l  dom4j-1.5.2.jardom4j是一个JavaXML API,类似于jdom,用来读写XML文件的。这是必须使用的jar包,Hibernate用它来读写配置文件。

l  commons-collections-2.1.1.jarApache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大,是必须使用的jar包。

l  commons-logging-1.0.4.jarlog4j-1.2.9.jar:包含了日志功能,必须使用的jar包。

l  hibernate3.jarHibernate的核心jar包。

 

 

辅助类:HibernateSessionFactory.java

通过对configure()的调用来装载Hibernate.cfg.xml配置文件,并初始化一个Configuration实例。

         SessionFactory通常只被初始化一次。

 

使用<generator>设置主键的生成方式(常用)

(1).     assigned算法:

主键由外部程序负责生成,无须Hibernate参与,因此在程序执行save()方法之前为对象分配一个标识符。这是<generator>元素没有指定时的默认生成策略。

(2).     hilo算法:

使用高/低位算法高效生成longshortint类型的标识符。

(3).     increment

Increment标识主键按数值顺序递增。此方法的实现机制为,在当前程序中维持一个变量,以保存当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。

注意:如果同一数据库有多个实例访问,此方法必须避免使用。

(4).     identity算法:

采用数据库提供的主键生成机制,如DB2MySQLSybaseMS SQL中的主键生成机制,这需要这些数据库内部支持标识字段。

(5).     sequence算法:

采用数据库提供的sequence机制生成主键,如Oracle中的sequence

(6).     native算法:

Hibernate根据底层数据库自行判断采用identityhilosequence其中一种作为主键生成方式。

 

 

Hibernate核心类

l  Session接口:Session接口负责执行被持久化对象的CRUD操作。

l  SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。一般情况下,一个项目通常只需要一个SessionFactory就够了,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory

l  Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动过程中,Configuration类实例首先定位映射文件位置、读取配置,然后创建SessionFactory对象。

l  Transaction接口:Transaction接口负责事务相关的操作。它是可选的。

l  QueryCriteria接口:负责执行各种数据库查询。