Hibernate壓縮文件結構
下載Hibernate壓縮文檔,下面爲文件結構:
Hibernate3.jar:爲Hibernate的核心jar包;
build.xml:重新打包配置文件
build.bat:運行在windows系統中打包;
build.sh:運行在Unix系統上打包;
doc:Hibernate API文檔
eg:一個簡單的實例
etc:Hibernate中需要使用的配置文件的模板
lib:Hibernate所需要使用的一些Jar包
src:Hibernate的源代碼
test:測試代碼(單元測試代碼)
搭建Hibernate的使用環境:
1、 建立項目(我們這裏建立Java Project)
例:hibernate_first
2、 引入hibernate所需要的jar包
利用User Library庫引入jar包,以後項目如何需要使用這此jar包,只要引入這個庫就可以了。
方法:
第一步: window→Preferences → Java → Build Path → User Libraries → 「New」 按鈕→ 然後輸入庫名→點擊「OK」
第二步:加入所需要的
爲項目引入hibernate JAR庫
右鍵項目→Properties→Java Build Path→右邊點擊」Libraries」選項卡→「Add Library…」按鈕→User Library→」next」按鈕→選中我們剛剛建的」Hibernate3 JAR庫」→Finish→OK
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>
<!-- 是否顯示hibernate的SQL語句 -->
<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.xml或hiberante.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);