Hibernate組態檔
Hibernate框架簡介
Hibernate框架是一個開放源代碼的物件關系映射框架,它對JDBC進行了非常輕量級的物件封裝,使得Java程式員可以隨心所欲的物件編程思維來操縱資料庫,
1.Hibernate的組態檔
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 資料庫URL -->
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl
</property>
<!-- 資料庫用戶 -->
<property name="connection.username">scott</property>
<!-- 資料庫用戶密碼 -->
<property name="connection.password">orcl</property>
<!-- 資料庫JDBC驅動 -->
<property name="connection.driver_class">
oracle.jdbc.OracleDriver
</property>
<!-- 指定當前session范圍和背景關系 -->
<property name="current_session_context_class">thread</property>
<!-- oracle版本方言 -->
<property name="dialect">
org.hibernate.dialect.Oracle10gDialect
</property>
<!-- 是否將運行期生成的SQL輸出到日志已供除錯 -->
<property name="show_sql">true</property>
<!-- 是否格式化 -->
<property name="format_sql">true</property>
<!-- 映射檔案 -->
<mapping resource="cn/bdqn/entity/Dept.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
2.Hibernate組態檔引數作用
(1)connection.url:表示資料庫URL,Jdbc:oracle:thin:@10.0.0.176:1521:orcl.是Oracle資料庫的URL,其中jdbc.oracl.thin:@是固定寫法,10.0.0.176是IP地址,1521是埠號,orcl是資料庫實體名,
(2)Connection.username:表示資料庫用戶名,
(3)Connection.password:表示資料庫用戶密碼,
(4)Connection.driver_class:表示資料庫驅動,Oracle:jdbc.driver.OracleDriver是Oracle是資料庫的驅動類,
(5)Dialect:用于配置Hibernate使用的資料型別,Hibernate支持幾乎所有的主題資料庫,包括Oracle、DB2、MS SQL Server和MySQL等,Org.hibernate.dialect.Oracle10gDialect指定當前資料庫型別是oracle 10g及以上版本,
(6)Curr_sql:如果設定為true,則程式運行時在控制臺輸出SQL陳述句,
(7)Format_sql:如果設定為true,則程式運行時在控制臺輸出格式化后的SQL陳述句,
3.Hibernate映射檔案
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Hibernate映射檔案 -->
<hibernate-mapping>
<class name="cn.bdqn.entity.Dept" table="`DEPT`">
<id name="deptNo" column="`DEPTNO`" type="java.lang.Byte">
<generator class="assigned"></generator>
</id>
<property name="deptName" column="`DNAME`" type="java.lang.String"></property>
<property name="location" column="`LOC`" type="java.lang.String"></property>
</class>
</hibernate-mapping>
4.Hibernate映射檔案引數
Dept.hb.xml定義了Dept類到資料庫表DEPT的映射,其中各元素的含義如下,
class:表示持久化類的資料庫表名,
table:表示持久化類的全限定名,
id:表示持久化類的OID和表的主鍵的映射,常用屬性如下:
type:表示持久化類屬性的名稱,和屬性的訪問器相匹配,
column:表示持久化類屬性對應的資料庫表欄位的名稱,也可在子元素column中指定,
generator:id元素的子元素,用于指定主鍵的生成策略,常用屬性及元素如下:
class:屬性用來指定具體主鍵生成策略,
param:元素用來傳遞引數,
常用的主鍵生成策略如下:
(1).assigned:主鍵由應用程式負責生成,無須Hibernate參與,這是沒有指定元素時的默認生成策略,
(2).increment:對型別為long,short,或int的主鍵,已自動增長的方式生成主鍵的值,主鍵按數值順序遞增,增量為1.
(3).identity:對如SQL Server、DB2、MySQL等支持標識列的資料庫,可使用該主鍵生成策略生成自動增長主鍵,但要在資料庫中將相應的主鍵欄位設定為標識列,
(4).sequence:對如Oracle、DB2等支持序列的資料庫,可使用該主鍵生成策略生成自動增長主鍵,通過子元素param可傳入資料庫中序列的名稱,
(5).native:由Hibernate根據底層資料庫自行判斷采用何種主鍵生成策略,即由使用的資料庫生成主鍵的值,
propert:定義持久化類中的屬性和資料庫表中的欄位的對應關系,常用屬性如下:
name:表示持久化類屬性的名稱,和屬性的訪問器相匹配,
type:表示持久化類屬性的型別,
column:表示持久化類屬性對應的資料庫表欄位的名稱,也可以子元素column中指定,
column元素:用于指定其父元素代表的持久化類屬性所對應的資料庫中的欄位,其常用屬性如下:
name:表示欄位的名稱;
length:表示欄位長度;
not-null:設定是否不能為null,設定為true表示不能為null;
5. Hibernate的優點
(1)物件/關系資料庫映射(ORM) 它使用時只需要操縱物件,使開發更物件化,拋棄了資料庫中心的思想,完全的面向物件思想
(2)透明持久化(persistent) 帶有持久化狀態的、具有業務功能的單執行緒物件,此物件生存期很短,這些物件可能是普通的JavaBeans/POJO,這個物件沒有實作第三方框架或者介面,唯一特殊的是他們正與(僅僅一個)Session相關聯,一旦這個Session被關閉,這些物件就會脫離持久化狀態,這樣就可被應用程式的任何層自由使用,
(3)事務Transaction(org.hibernate.Transaction) 應用程式用來指定原子操作單元范圍的物件,它是單執行緒的,生命周期很短,它通過抽象將應用從底層具體的JDBC、JTA以及CORBA事務隔離開,某些情況下,一個Session之內可能包含多個Transaction物件,盡管是否使用該物件是可選的,但無論是使用底層的API還是使用Transaction物件,事務邊界的開啟與關閉是必不可少的, (4) 它沒有侵入性,即所謂的輕量級框架 (5) 移植性會很好 (6) 快取機制,提供一級快取和二級快取 (7) 簡潔的HQL編程
6.Hibernate的缺點
(1)不適合以中心大量使用儲存程序的應用
(2)大規模的批量插入,修改和洗掉不合適的Hibernate,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/217135.html
標籤:其他
上一篇:MySql常用SQL陳述句
下一篇:關系資料庫基礎知識介紹
