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型態的標準對應型態(因爲語言所提供的類型並不一定與數據庫的類型對應),這之後會再說明。 |
Hibernate基本介紹個簡單的程序(1)
日誌 > 技術交流
評論列表
溫馨提示:點擊驗證碼輸入框,以獲取驗證碼
請輸入驗證碼:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.