PO(Persistent Object)持久化对象概念:
持久化对象的作用是完成持久化操作.就是通过该对象可对数据执行增,删和改的操作,以面向对象的方式操作数据库。
Hibernate里的PO是非常简单的,Hibernate是低入侵式的设计,完全采用普通JAVA对象(POJO)来作为持久化对象使用。
一个POJO还不具备持久化操作的能力,为了使其具有持久化操作的能力,Hibernate应采用XML映射文件。
例:
<? xml version=”1.0” encoding=”GBK” ?>
<! DOCTYPE hibernate-mapping
PUBLIC “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
“http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”>
<hibernate-mapping>
<class name=”User” table=”user_table”>
<id name=”id” column=”user_id”>
<generator class=”identity”/>
</id>
<property name=”name” column=”user_name”/>
<property name=”pass” column=“user_pass”/>
</hibernate-mapping>
Hibernate-mapping元素下有子元素class,每个class子元素映射一个PO,更准确地说,应该是持久化类。PO(持久化对象)=POJO+映射文件
需要使用持久化操作还必须完成hibernate管理数据库配置----就是连接数据库的一些基本信息。连接所需的基本信息配置可通过.properties的属性文件,或hibernate.cfg.xml的方式来配置。使用properties文件配置,调用configuration时需要多次调用addfile方法;使用hibernate.cfg.cml则只需要调用一次configuration的configure方法。
Hibernate持久化操作使用步骤:
1. 创建Configuration对象
2. 创建SessionFactory对象
3. 打开Session
4. 开始事务
5. 提交事务
6. 关闭SessionFactory
SessionFactory是数据库编译后的内存镜像,通常一个应用对应一个SessionFactory对象,该对象由Configuration对象产生;关闭SessionFactory,并不是每个持久化操作后都关闭SessionFactory,而是在整个应用关闭时才关闭SessionFactory
一些要点:
PO可有的三个状态:
l 瞬态(transient)----PO实例刚刚创建成功,PO处于transient状态,还没有与底层的数据记录关联。
l 持久化----当Session调用save或update后,PO与特定的记录关联,PO的标识属性和数据表的主键列的值一一对应,这就是PO和数据级录之间关联的原理,此时该PO处于持久化状态。
l 脱管(detoched)----当Session关闭后,曾经被Session管理的持久化状态下的PO全部成为脱管状态。
Hibernate连接池配置作用:
c3po.max_size:连接最大值
c3po.min_size:连接最少值
c3po.timeout:等待响应时间
c3po.max_statements:最大statement数量
c3po.idle_test_period:测试连接时间
c3po.acquire_increment:连接池里连接的增长数
c3po.validate:false