002—第一個Hibernate示例(一)

Hibernate壓縮文件結構

下載Hibernate壓縮文檔,下面爲文件結構:

 



 

Hibernate3.jar:爲Hibernate的核心jar包;

build.xml:重新打包配置文件

build.bat:運行在windows系統中打包;

build.sh:運行在Unix系統上打包;

docHibernate API文檔

eg:一個簡單的實例

etcHibernate中需要使用的配置文件的模板

libHibernate所需要使用的一些Jar

srcHibernate的源代碼

test:測試代碼(單元測試代碼)

 

搭建Hibernate的使用環境:

1、   建立項目(我們這裏建立Java Project)

例:hibernate_first

2、   引入hibernate所需要的jar

利用User Library庫引入jar包,以後項目如何需要使用這此jar包,只要引入這個庫就可以了。

方法:

第一步: windowPreferences Java Build Path User Libraries 「New」 按鈕→ 然後輸入庫名→點擊「OK

 



 第二步:加入所需要的

JAR 包:點擊「 Hibernate3 」項→「 Add JARs …」按鈕→在彈出的對話框選擇需要的 JAR (hibernate3.jar lib 目錄下的所有 JAR ) ,還有數據庫的 JDBC 驅動 ( 例如 Mysql 驅動

 
)

 

爲項目引入hibernate JAR

右鍵項目→PropertiesJava Build Path→右邊點擊」Libraries」選項卡→「Add Library…」按鈕→User Library」next」按鈕→選中我們剛剛建的」Hibernate3 JARFinishOK

3、   創建Hibernate的配置文件(hibernate.cfg.xml)

Hibernate支持兩個格式的配置文件:hibernate.properties(不常用)hibernate.cfg.xml(建意使用)

hibernate.cfg.xml文件複製到ClassPath的根下(src目錄下)(hibernate.cfg.xml位於hibernate_home/etc目錄下)

<session-factory>

        <!--

            具體的配置信息可參見hibernate_home/etc/hibernate.properties相關配置項

            如何要移植數據時,只要將下面數據庫信息修改就可以了。

         -->

        <!-- 配置mysql數據庫連接串 -->

        <property name="hibernate.connection.url">jdbc:mysql://localhost:3036/hibernate_first</property>

        <!-- 配置mysql數據庫jdbc驅動 -->

        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

        <!-- 配置mysql數據庫連接用戶名 -->

        <property name="hibernate.connection.username">root</property>

        <!-- 配置mysql數據庫連接用戶密碼 -->

        <property name="hibernate.connection.password">root</property>

        <!--配置數據庫適配器(使用何中數據庫)-->

        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

         <!-- 是否顯示hibernateSQL語句 -->

        <property name="hibernate.show_sql">true</property>

 

<!-- 配置實體類映射文件 位於property之後

            映射文件要求爲完整路徑,目錄之前使用/隔開

-->

       <mapping resource="com/wjt276/hibernate/User.hbm.xml"/>

 

</session-factory>

4、   創建日誌的配置文件(log4j.properties),爲了便於調試最好加入log4j配置文件

將模板文件複製到ClassPath根下(src目錄下)

爲了不需要多於的提示信息,可以將此配置文件中一些配置項取消了。但要保留log4j.rootLogger=warn, stdout

5、   定義實體類

(Hibernate先定義實體類,再生成表)

例如:User實體類

6、   定義User類的映射文件(重要、關鍵)—User.hbm.xml

映射文件可位於任何位置,但一般位於實體類同一目錄下。

映射文件是描述實體類和實體類的屬性的。

源數據:描述實體類及實體類屬性之間的關係的。

映射類標籤:<classs></class>

<!--

        class標籤 實體類映射到數據表

        * name屬性:實體類的完整路徑

        * table屬性:實體類映射到數據庫中的表名,如果省略,則爲實體類的類名稱

    -->

    <class name="com.wjt276.hibernate.User" table="t_user">

        <!-- 映射數據庫主鍵 映射到數據表中的字段名默認爲類屬性名,但可以利用column重新指定-->

        <id name="id" column="id">

            <!-- generator設置主鍵生成策略

                uuid:一萬年內生成唯一的字符串

            -->

            <generator class="uuid"/>

        </id>

        <!-- property 映射普通屬性  映射到數據表中的字段名默認爲類屬性名,但可以利用column重新指定-->

        <property name="name" column="name"/>

        <property name="password"/>

        <property name="createTime"/><!-- Hibernate會自動根據實體類屬性類型生成數據庫表中字段類型 -->

        <property name="expireTime"/>

    </class>

7、   User.hbm.xml文件加入到hibernate配置文件中(hibernate.cfg.xml),因爲hibernate並不知道這個文件的存在。

       <!-- 配置實體類映射文件 位於property之後

            映射文件要求爲完整路徑,目錄之前使用/隔開

-->

       <mapping resource="com/wjt276/hibernate/User.hbm.xml"/>

------2009/10/16--------------

8、   使用hibernate工具類將對象模型生成關係模型(hbm to ddl)

(也就是實體類生成數據庫中的表),完整代碼如下:

package com.wjt276.hibernate;

 

import org.hibernate.cfg.Configuration;

import org.hibernate.tool.hbm2ddl.SchemaExport;

 

/**

 * Hibernate工具<br/>

 * 將對象模型生成關係模型(將對象生成數據庫中的表)

 * hbm映射文件轉換成DDL

 * 生成數據表之前要求已經存在數據庫

 * 注:這個工具類建立好後,以後就不用建立了。以後直接Copy來用。

 * @author wjt276

 * @version 1.0 2009/10/16

 */

public class ExportDB {

    public static void main(String[] args){

        /*

         * org.hibernate.cfg.Configuration類的作用:

         * 讀取hibernate配置文件(hibernate.cfg.xmlhiberante.properties).

         * new Configuration()默認是讀取hibernate.properties

         * 所以使用new Configuration().configure();來讀取hibernate.cfg.xml配置文件

         */

        Configuration cfg = new Configuration().configure();

       

        /*

         * org.hibernate.tool.hbm2ddl.SchemaExport工具類:

         * 需要傳入Configuration參數

         * 此工具類可以將類導出生成數據庫表

         */

        SchemaExport export = new SchemaExport(cfg);