導航:首頁 > 文件管理 > hibernate配置文件在哪

hibernate配置文件在哪

發布時間:2023-02-27 12:44:50

1. 關於hibernate的配置文件

配置文件中映射元素詳解

對象關系的映射是用一個XML文檔來說明的。映射文檔可以使用工具來生成,如XDoclet,Middlegen和AndroMDA等。下面從一個映射的例子開始講解映射元素,映射文件的代碼如下。

<?xml version="1.0"?>
<!--
所有的XML映射文件都需要定義如下所示的DOCTYPE。
Hibernate會先在它的類路徑(classptah)中搜索DTD文件。

-->
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!--
hibernate-mapping有幾個可選的屬性:
schema屬性指明了這個映射的表所在的schema名稱。
default-cascade屬性指定了默認的級聯風格 可取值有 none、save、update。
auto-import屬性默認讓我們在查詢語言中可以使用非全限定名的類名 可取值有 true、false。
package屬性指定一個包前綴。
-->

<hibernate-mapping schema="schemaName" default-cascade="none"
auto-import="true" package="test">

<!--用class元素來定義一個持久化類 -->
<class name="People" table="person">
<!-- id元素定義了屬性到資料庫表主鍵欄位的映射。-->
<id name="id">
<!-- 用來為該持久化類的實例生成唯一的標識 -->
<generator class="native"/>
</id>
<!-- discriminator識別器 是一種定義繼承關系的映射方法-->

<discriminator column="subclass" type="character"/>
<!-- property元素為類聲明了一個持久化的,javaBean風格的屬性-->
<property name="name" type="string">
<column name="name" length="64" not-null="true" />
</property>

<property name="sex"
not-null="true"
update="false"/>

<!--多對一映射關系-->
<many-to-one name="friend"
column="friend_id"
update="false"/>

<!--設置關聯關系-->

<set name="friends" inverse="true" order-by="id">
<key column="friend_id"/>
<!—一對多映射-->
<one-to-many class="Cat"/>
</set>
</class>
</hibernate-mapping>

2. 在hibernate核心配置文件中<session-factory>下需要配置哪些<property>屬性

net.sf.hibernate.cfg.Configuration的一個實例代表了應用程序中所有的Java類到SQL資料庫的映射的集合。Configuration用於構造一個(不可變的)SessionFactory。這些映射是從一些XML映射文件中編譯得來的。

你可以得到一個Configuration的實例,直接實例化它即可。下面有一個例子,用來從兩個XML配置文件(位於classpath)中的映射中初始化:
Configuration cfg = new Configuration()
.addFile("Item.hbm.xml")
.addFile("Bid.hbm.xml");
另外一個(某些時候更好的)方法是讓Hibernate自行用getResourceAsStream()來裝載映射文件。
Configuration cfg = new Configuration()
.addClass(org.hibernate.auction.Item.class)
.addClass(org.hibernate.auction.Bid.class);
Hibernate 就會在classpath中尋找叫做/org/hibernate/autcion/Item.hbm.xml、/org/hibernate/autcion/Bid.hbm.xml的映射文件。這種方法取消了所有對文件名的硬編碼。

Configuration也可以指定一些可選的配置項:
Properties props = new Properties();
...
Configuration cfg = new Configuration()
.addClass(org.hibernate.auction.Item.class)
.addClass(org.hibernate.auction.Bid.class)
.setProperties(props);
Configuration是僅在配置期使用的對象,從第一個SessionFactory開始建立的時候,它就失效了。

2. 獲取SessionFactory

當所有的映射都被Configuration解析之後,應用程序為了得到Session實例,必須先得到它的工廠。這個工廠應該是被應用程序的所有線程共享的:
SessionFactory sessions = cfg.buildSessionFactory();
當然,Hibernate並不禁止你的程序實例化多個SessionFactory。在你使用不止一個資料庫的時候,這就有用了。

3. 用戶自行提供JDBC連接

SessionFactory可以使用一個用戶自行提供的JDBC連接來打開一個Session。這種設計可以讓應用程序來自己管理JDBC連接:
java.sql.Connection conn = datasource.getConnection();
Session session = sessions.openSession(conn);

// do some data access work
應用程序必須小心,不能在同一個連接上打開兩個並行的session!

4. Hibernate提供的JDBC連接

另一種方法就是,你可以讓SessionFactory替你打開連接。SessionFactory必須事先知道JDBC連接的參數,有幾種不同的方法設置參數:

傳遞一個java.util.Properties到Configuration.setProperties()方法。

在classpath的根目錄中提供hibernate.properties文件。

通過java -Dproperty=value指定使用系統屬性。

在hibernate.cfg.xml文件中包含<property>元素。詳情見後。

如果你使用這種方法,打開一個Session是非常簡單的:
Session session = sessions.openSession(); // open a new Session
// do some data access work, a JDBC connection will be used on demand
所有的Hibernate屬性名和約束都在net.sf.hibernate.cfg.Environment類中定義。我們討論一下JDBC連接配置最重要的幾項設置:

假若你設置了如下的屬性,Hibernate會使用java.sql.DriverManager來得到連接,並建立連接池:

3. hibernate怎麼讀取配置文件

Hibernate載入配置文件的兩種方法:
(一):configuration.configure();(默認載入src下的hibernate.cfg.xml文件)
代碼:
private static SessionFactory sf = null; static{

Configuration configuration = new Configuration();

configuration.configure();

sf = configuration.buildSessionFactory();

}

如果使用了這種載入方法那麼在hibernate.cfg.xml文件中就需要mapping XX.hbm.xml文件了
代碼:
<session-factory>
<mapping resource="domain/Students.hbm.xml"/>

<mapping resource="domain/Techer.hbm.xml"/></session-factory>

第二種方法使用的是con.addClass(class);方法
在test類中代碼:
private static SessionFactory sf = null; static{

Configuration configuration = new Configuration();

configuration.configure();

configuration.addClass(Techer.class);

configuration.addClass(Students.class);

sf = configuration.buildSessionFactory();

}

4. 如何在hibernate.cfg.xml中的主配置文件中配置多個映射文件

需要寫個路徑來讀spring配置文件。或者你把映射的東西拷貝到hibernate.cfg.xml中,把hibernate.cfg.xml放到src目錄下,然後運行生成資料庫表也行的。

閱讀全文

與hibernate配置文件在哪相關的資料

熱點內容
軟體傳輸文件 瀏覽:184
密碼記錄器ios 瀏覽:412
兩個電腦數據怎麼一樣 瀏覽:829
順豐有什麼買東西的app 瀏覽:377
數位板word 瀏覽:939
win7寬頻連接出現多重網路 瀏覽:268
更改程序圖標c語言 瀏覽:629
網路電視偷停怎麼辦 瀏覽:418
linux連接ftp 瀏覽:512
es文件瀏覽器視頻筆記 瀏覽:874
mac無法打開描述文件 瀏覽:134
什麼軟體打文件 瀏覽:53
資料庫無數據變成0 瀏覽:899
名企筆試如何刷編程題 瀏覽:49
js跳到頁面某地 瀏覽:550
jsp展示clob欄位 瀏覽:779
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136
金庸群俠傳3修改代碼 瀏覽:712

友情鏈接