Hibernate入門
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property
name="connection.url">
</property>
<property
name="connection.username">jbit</property>
<property
name="connection.password">bdqn</property>
<property
name="connection.driver_class">
</property>
<property
name="show_sql">true</property>
<!--省略其他配置-->
<!--
的全路徑-->
resource="
/>
</session-factory>
</hibernate-configuration>
<hibernate-mapping>
name="cn.jbit.houserent.bean.User"
table="users">
<
name="id"
type="java.lang.Integer">
<
name="id"
/>
<
class="sequence"
>
<
name="sequence">SEQ_ID</param>
</
</
<
name="name"
type="java.lang.String">
<
name="name"
length="50"
not-null="true"
/>
</
<
name="password"
type="java.lang.String">
<
name="password"
length="50"
not-null="true"
/>
</
<!--
</hibernate-mapping>
//sf.getCurrentSession();
conf
= null;
sessionFactory
=
null;
session
=
null;
Transaction
tx
=
null;
try {
Configuration().configure();
=
conf.buildSessionFactory();
=
session.beginTransaction();
}
catch (HibernateException
e)
{
} finally{
}
get(Class class,Serializable id)
load(Class theClass,Serializable id)
當使用Session的get方法時,如果加載的數據不存在,get方法會返回一個null對象
使用load方法時,如果加載的數據不存在,系統就會拋出異常
get方法即時加載
load方法支持lazy延遲加載
Hibernate中實體對象的三種狀態:
總結:
Hibernate是一個基于JDBC的持久化解決方案,是一個優秀的"對象一關系映射"框架
使用Hibernate前要做好以下三個準備。
1.添加需要的jar包
2.配置Hibernate配置文件
3.創建實體類和映射文件
使用Hibernate完成持久化操作需要以下七個步驟
1.讀取并解析配置文件
2.讀取并解析映射文件,創建SessionFactory
3.打開Session
4.開啟事務(查詢操作不需要)
5.執行持久化方法
6.提交事務
7.關閉Session
使用提取重復代碼到基類的技巧可以簡化“七個步驟”
Hibernate中將所操作的實體對象的狀態分為三種,分別為Transient(瞬時狀態)
Persistent(持久狀態) 以及Detached(游離狀態)
注意:
openSession用一次
用getSession獲得session省資源
加載Hibernate的jar包:
需要f:\hibernate-distribution-3.3.2.GA\Hibernate3.jar和f:\hibernate-distribution-3.3.2.GA\lib\required目錄下的所有jar包
還需加載JDBC驅動包
事務寫在業務層,若寫在DAO層,無論執行何種操作都只是操作的一個對象,不存在事務的價值
session管理50000個操作,若超出范圍則會異常,使用假提交,把壓力扔給數據庫
getSession.flush(); //Hibernate批量處理
getSession.clear();