Eclipse快速上手Hibernate--1. 入門執行個體

來源:互聯網
上載者:User
    這篇文章主要談談Hibernate的入門開發,例子很簡單,就是向資料表中添加使用者名稱和密碼。我分別使用了三種方法,一種是直接寫代碼,寫Hbm對應檔等;一種是通過Hbm對應檔來產生代碼;一種是通過代碼來產生Hbm對應檔。使用了一些自動化工具,XMLBuddy是用來編輯XML檔案的,JBoss Eclipse IDE是用來編寫Doclet標記的。這篇文章還談到了一些Eclipse的提示,比如建立“使用者庫”、“產生 Getter 和 Setter”等。    關於一些軟體的提示,我以前的文章都有提及,這裡不多說了,必要時會提示一下。    一、下載、安裝和配置 1. 所需軟體● Ant 1.6.2        http://ant.apache.org    下載            http://mirror.apache.or.kr/ant/binaries/apache-ant-1.6.2-bin.zip ● Eclipse 3.0.1 及 語言套件     參考:          http://blog.csdn.net/javamxj/archive/2004/10/11/131952.aspx ● XDoclet  1.2.2   http://xdoclet.sourceforge.net/xdoclet/    下載            http://prdownloads.sourceforge.net/xdoclet/xdoclet-bin-1.2.2.zip?download ● XMLBuddy          http://www.xmlbuddy.com/    下載             XMLBuddy 2.0.38     ● JBoss Eclipse IDE http://www.jboss.org/products/jbosside   看看說明,需要挑選與使用的eclipse相對應的版本,這裡選擇JBossIDE-1.4.1-e30.zip,這是它的鏡像下載地址:   http://prdownloads.sourceforge.net/jboss/JBossIDE-1.4.1-e30.zip?download ● Hibernate         http://www.hibernate.org/     下載            Hibernate 2.1.8  http://prdownloads.sourceforge.net/hibernate/hibernate-2.1.8.zip?download    同時也要把 Hibernate Extensions 2.1.3 下載了,它包含一些工具類。     下載            http://prdownloads.sourceforge.net/hibernate/hibernate-extensions-2.1.3.zip?download  ●  MySQL 4.1.8      參考:http://blog.csdn.net/javamxj/archive/2005/01/13/251861.aspx     注意需要mysql-connector-java-3.0.16-ga-bin.jar檔案   2. 安裝和配置       這裡著重指出一下,需要在環境變數中設定 ANT_HOME ,並將其指向Ant安裝目錄,還要在Path變數值中添加 “%ANT_HOME%\bin;” 可以參考 java環境變數設定 。  · XMLBuddy 和Jboss-ide 我都是採用links方式安裝的,     參考   http://blog.csdn.net/javamxj/archive/2004/10/11/132311.aspx   ●  建立庫檔案夾:    在D盤下建立一個java目錄,在此目錄下建立一個Hibernate子目錄,在此子目錄下再建立一個lib子目錄。D:\  -java     -Hibernate               -lib · 將下載的hibernate-2.1.8.zip解壓,如解壓後的目錄名為hibernate-2.1,將這個目錄下的hibernate2.jar複製到先前建立的lib目錄下,即D:\java\Hibernate\lib目錄;  · 然後將hibernate-2.1目錄下的lib子目錄中的以下檔案也複製到這個lib目錄下:jta.jar  cglib-full-2.0.2.jar  commons-collections-2.1.1.jar  commons-logging-1.0.4.jar
commons-lang-1.0.1.jar 
dom4j-1.4.jar ehcache-0.9.jar log4j-1.2.8.jar odmg-3.0.jar  · 解壓hibernate-extensions-2.1.3.zip,將其子目錄tools中的hibernate-tools.jar和子目錄lib中的velocity-1.3.1.jar、jdom.jar 也複製到D:\java\Hibernate\lib目錄中  · 解壓xdoclet-bin-1.2.2.zip,將其子目錄lib中的xdoclet-1.2.2.jar、xdoclet-hibernate-module-1.2.2.jar、xjavadoc-1.1.jar、xdoclet-xdoclet-module-1.2.2.jar 也複製到D:\java\Hibernate\lib目錄中 · 最後將mysql-connector-java-3.0.16-ga-bin.jar檔案複製到這個lib目錄下。    這樣,需要用到的庫檔案已經準備好了,如果認為這樣比較麻煩,也可以將jar檔案全部複製到lib目錄。下面介紹如何在Eclipse中設定“使用者庫”。   ●  設定“使用者庫” ·視窗 ->喜好設定 ->Java ->構建路徑 ->使用者庫, · 然後單擊“添加JAR”    這樣,一個使用者庫檔案就做好了,如果要更新Eclipse時,可以將其先匯出,然後再匯入即可。這樣做,對庫檔案便於管理,而且如果需要替換或者升級的話都比較方便。
 

 

●  設定“構建路徑”

 

· 點擊菜單“視窗”->喜好設定,以下都在“喜好設定”中配置:
   Java->構建路徑      ● 更新xdoclet-hibernate-module    將XDoclet1.2.2中的xdoclet-hibernate-module-1.2.2.jar複製到JBossIDE-1.4.1-e30\eclipse\plugins\org.jboss.ide.eclipse.xdoclet.core_1.4.1目錄中,並且刪除其目錄下的xdoclet-hibernate-module-1.2.1.jar檔案,然後在eclipse介面中,視窗 ->喜好設定 ->JBoss-IDE ->XDoclet ->Code Assist:點擊右側的“Refresh XDoclet Data”欄,即可完成更新。如果要替換其它的模組,步驟與此類似。    二、項目實踐     這裡以一個簡單的程式來示範Hibernate的配置與功能,在這個例子中的一些操作,實際上會使用一些自動化工具來完成,而不一定親自手動操作設定,這邊完全手動的原因,在於讓你可以知道Hibernate的基本流程。     這是整個項目的結構: 好了,下面就開始建立項目了。    1. 建立項目 · 建立一個Java項目:HibernateBegin_1,注意選中“建立單獨的源檔案夾和輸出檔案夾”。點擊“下一步”,切換到“庫”,點擊“添加庫”,如下圖: · 選擇“使用者庫” · 勾選先前設定好的hibernate使用者庫。  2. 建立可持久化類  · 下面開始建立一個新類:User ;包名:javamxj.hibernate ; 然後添加三個變數(斜體),代碼如下:
/* * 採用常規方法開發一個簡單的Hibernate執行個體 * 建立日期 2005-3-31 * @author javamxj(分享java快樂) * @link Blog: htpp://javamxj.mblogger.cn * htpp://blog.csdn.net/javamxj/ */package javamxj.hibernate;public class User { private int id; private String username; private String password;}
· 點擊工具列上的“原始碼(S)”,選擇其中的“產生 Getter 和 Setter”(右擊,在快顯功能表也可選擇),如圖: 點擊“確定”後,產生如下代碼:
/* * 採用常規方法開發一個簡單的Hibernate執行個體 * 建立日期 2005-3-31 * @author javamxj(分享java快樂) * @link Blog: htpp://javamxj.mblogger.cn * htpp://blog.csdn.net/javamxj/ */package javamxj.hibernate;public class User { private int id; private String username; private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}}
     好了,這個類完成了。它是一個普通的Java對象(Plain Old Java Objects,就是POJOs,有時候也稱作Plain Ordinary Java Objects),表示一個資料集合。下面建立一個Hbm檔案將這個類映射到資料庫的表格上。  3. 對應檔    在javamxj.hibernate包下,建立一個名稱為“User.hbm.xml”的檔案,使用XMLBuddy編輯它(參考:利用XMLBuddy在Eclipse中開發XML ),這樣比較方便。檔案內容如下:
<?xml version="1.0" encoding="GBK"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"><hibernate-mapping> <class name="javamxj.hibernate.User" table="UserTable"> <id name="id"> <generator class="assigned" /> </id> <property name="username" /> <property name="password" /> </class></hibernate-mapping>
    這個XML檔案定義了對象屬性對應到資料庫表的關係,這裡採用了assigned(程式設定)方式產生主鍵。當然還可以使用其它的方式來產生主鍵,後面的文章就採用了其它的方式產生主鍵。    <property>標籤用於定義Java對象的屬性,這裡只定義了最簡單的方式,由Hibernate自動判斷Java對象屬性與資料庫表名稱對應關係。在<property/>標籤上的額外設定(像是not null、sql-type等),則可以用於自動產生Java對象與資料庫表的工具上。  4. 設定檔     Hibernate可以使用XML或屬性檔案來進行配置,設定檔名預設為“hibernate.cfg.xml”(或者hibernate.properties)。   在src目錄下,建立一個hibernate.cfg.xml檔案,內容如下:
<?xml version='1.0' encoding='GBK'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration> <session-factory> <!-- 是否將運行期產生的SQL輸出到日誌以供調試 --> <property name="show_sql">true</property> <!-- SQL方言,這裡設定的是MySQL --> <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> <!-- JDBC驅動程式 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- JDBC URL, "?useUnicode=true&characterEncoding=GBK" 表示使用GBK進行編碼 --> <property name="connection.url"> jdbc:mysql://localhost:3306/HibernateTest?useUnicode=true&characterEncoding=GBK </property> <!-- 資料庫使用者名稱 --> <property name="connection.username">root</property> <!-- 資料庫密碼 --> <property name="connection.password">javamxj</property> <!-- 指定User的對應檔 --> <mapping resource="javamxj/hibernate/User.hbm.xml"/> </session-factory></hibernate-configuration>
 注意:這裡使用的是“jdbc:mysql://localhost:3306/HibernateTest?useUnicod...”中的HibernateTest資料庫,你需要在MySql中建立這個資料庫。  5. 測試程式    在javamxj.hibernate包下,建立一個Test類,內容如下:
/* * 簡單測試一下User類 * 建立日期 2005-3-31 * @author javamxj(分享java快樂) */package javamxj.hibernate;import net.sf.hibernate.*;import net.sf.hibernate.cfg.*;public class Test {public static void main(String[] args) {try {SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();User user = new User();user.setUsername("Blog");user.setPassword("分享java快樂");session.save(user);tx.commit();session.close();} catch (HibernateException e) {e.printStackTrace();}}}
    這裡簡單說說一下流程,首先初始化Configuration,載入Hibernate的配置資訊,然後Configuration取得SessionFactory對象,並由它來開啟一個Session,它代表對象與表格的一次會話操作,而 Transaction則表示一組會話操作,我們只需要直接操作User對象,並進行Session與Transaction的相關操作, Hibernate就會自動完成對資料庫的操作。  6. 設定資料庫    在運行測試程式之前,還必須先設定好資料庫。   在MySQL中建立一個HibernateTest資料庫,並建立UserTable表,SQL語句如下: CREATE TABLE usertable (  ID int(6) NOT NULL auto_increment,  username varchar(24) NOT NULL default '',  password varchar(24) NOT NULL default '',  PRIMARY KEY  (ID)); CREATE TABLE usertable (  ID int(6) NOT NULL auto_increment,  username varchar(24) NOT NULL default '',  password varchar(24) NOT NULL default '',  PRIMARY KEY  (ID));      這裡,HibernateTest與hibernate.cfg.xml設定檔中的HibernateTest相對應,UserTable與hbm對應檔中的UserTable相對應。  7. 運行程式    右擊Test.java,點擊運行,可以看到控制台輸出一系列資訊,最後一條輸出語句應該是:Hibernate: insert into UserTable (username, password, id) values (?, ?, ?)   在下篇文章中會介紹如何利用log4j來控制輸出資訊。    同時,在資料庫中可以看到,資料已經添加進表裡了:  小結:     Hibernate原理方面我不想多說,實際上知道也不多,況且這方面的資料很多,比如Hibernate本身內建的中文文檔、夏昕編寫的《Hibernate開發指南》、良葛格編寫的“Hibernate入門”等都是非常不錯的,現在關於Hibetnate的書籍也多了起來。     我所作的工作就是要使新手能儘快上手Hibernate,理論方面我不想過多糾纏,盡量以執行個體說話。我想,與其憑空說一個技術多好多好,倒不如給我一個可以上手的執行個體操作一下。好了,不多說廢話了。      小結:     Hibernate原理方面我不想多說,實際上知道也不多,況且這方面的資料很多,比如Hibernate本身內建的中文文檔、夏昕編寫的《Hibernate開發指南》、良葛格編寫的“Hibernate入門”等都是非常不錯的,現在關於Hibetnate的書籍也多了起來。     我所作的工作就是要使新手能儘快上手Hibernate,理論方面我不想過多糾纏,盡量以執行個體說話。我想,與其憑空說一個技術多好多好,倒不如給我一個可以上手的執行個體操作一下。好了,不多說廢話了。     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.