Hibernate基本介紹個簡單的程序(1)

日誌 > 技術交流
設置置頂 | 編輯 | 刪除

Hibernate基本介紹個簡單的程序(1)

發表於:2008年2月28日 10時22分11秒閱讀(2)評論(0)本文鏈接:http://user.qzone.qq.com/592433424/blog/1204165331
關 鍵 詞:Java  Hibernate  介紹  程序
閱讀提示:本文對Hibernate進行了基本介紹,從一個最基本的對象關係映像自動化程序,瞭解Hibernate組成的基本元素,並進一步瞭解Hibernate的基礎語義、配置等概念。然後,通過一個簡單的單機程序來示範Hibernate的配置與功能。 一、基礎入門
從一個最基本的對象關係映像自動化程序,瞭解Hibernate組成的基本元素,並進一步瞭解Hibernate的基礎語義、配置等概念。
1.O/R映像入門第一個Hibernate程序很簡單,將一個對象映像至一個數據表
1.1配置Hibernate
Hibernate是ORM的解決方案,其底層對數據庫的操作依賴於JDBC,所以您必須先取得JDBC驅動程序,在這邊所使用的是MySQL,所以您必須至MySQL?Connector/J取得MySQL的JDBC驅動程序。
接下來至Hibernate官方網站取得hibernate 3.0。
解開zip檔案後,當中的hibernate3.jar是必要的,而在lib目錄中還包括了許多jar檔案,您可以在Hibernate 3.0官方的參考手冊上找到這些jar的相關說明,其中必要的是antlr、dom4j、CGLIB、asm、Commons Collections、Commons Logging、 EHCache,Hibernate底層還需要Java Transaction API,所以您還需要jta.jar,到這邊爲止,總共需要以下的jar檔案:
Hibernate可以運行於單機之上,也可以運行於Web應用程序之中,如果是運行於單機,則將所有用到的jar檔案(包括JDBC驅動程序)設定至CLASSPATH中,如果是運行於Web應用程序中,則將jar檔案置放於WEB-INF/lib中。
如果您還需要額外的Library,再依需求加入,例如JUnit、Proxool等等,接下來可以將etc目錄下的log4j.properties複製至Hibernate項目的Classpath下,並修改一下當中的log4j.logger.org.hibernate爲error,也就是隻在錯誤發生時顯示必要的訊息。
接着設置基本的Hibernate配置文件,可以使用XML或Properties檔案,這邊先使用XML,檔名預設爲hibernate.cfg.xml:
hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 顯示實際操作數據庫時的SQL -->
<property name="show_sql">true</property>
<!-- SQL 方言,這邊設定的是MySQL -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- JDBC 驅動程序 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:mysql://localhost/demo</property>
<!-- 數據庫使用者 -->
<property name="connection.username">caterpillar</property>
<!-- 數據庫密碼 -->
<property name="connection.password">123456</property>
<!-- 以下設置對象與數據庫表格映像文件 -->
</session-factory>
</hibernate-configuration>
配置文件中已經加上批註爲每一個項目作了說明,其中對象與數據庫表格映像文件還有待加入。
1.2第一個Hibernate
這邊以一個簡單的單機程序來示範Hibernate的配置與功能,首先作數據庫的準備工作,在MySQL中新增一個demo數據庫,並建立user表格:
CreateUser2MySQL.sql
CREATE TABLE user (
id INT(11) NOT NULL auto_increment PRIMARY KEY,
name VARCHAR(100) NOT NULL default '',
age INT
);
對於這個表格,您有一個User類別與之對應,表格中的每一個字段將對應至User實例上的Field成員。
User.java
packageonlyfun.caterpillar;
public class User {
private Integer id;
private String name;
private Integer age;
// 必須要有一個預設的建構方法
// 以使得Hibernate 可以使用Constructor.newInstance()建立對象
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
其中id是個特殊的屬性,Hibernate會使用它來作爲主鍵識別,您可以定義主鍵產生的方式,這是在XML映像文件中完成,爲了告訴Hibernate您所定義的User實例如何映像至數據庫表格,您撰寫一個XML映射文件檔名是User.hbm.xml,如下所示:
User.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="onlyfun.caterpillar.User" table="user">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native" />
</id>
<property name="name" column="name" type="java.lang.String" />
<property name="age" column="age" type="java.lang.Integer" />
</class>
</hibernate-mapping>
<class>卷標的name屬性爲所映像的對象,而table爲所映像的表格;<id>中column屬性指定了表格字段,而type屬性指定了User實例的中的id之型態,這邊type中所設定的是直接指定Java中的對象型態,Hibernate也定義有自己的映像型態,作爲Java對象與SQL型態的標準對應型態(因爲語言所提供的類型並不一定與數據庫的類型對應),這之後會再說明。
 
評論列表
請選擇道具
<textarea class="content" id="commentEditor" style="BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; COLOR: gray! important; BORDER-BOTTOM: #ccc 1px solid" onfocus="getUBBeditor(this)" rows="13" cols="50" name="content">點擊這裏發表評論</textarea>
溫馨提示:點擊驗證碼輸入框,以獲取驗證碼
請輸入驗證碼:
     
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章