如何學好java

          如何學好java,其實很簡單,只要用心體會,慢慢積累!
          posts - 106, comments - 7, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Eclipse快速上手Hibernate之入門實例

          Posted on 2011-05-20 15:30 哈希 閱讀(159) 評論(0)  編輯  收藏 所屬分類: java 常用框架
          Eclipse快速上手Hibernate--1. 入門實例 < language="javascript" type="text/javascript">document.title="Eclipse快速上手Hibernate--1. 入門實例 - "+document.title

              這篇文章主要談談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.jarodmg-3.0.jar

           · 解壓hibernate-extensions-2.1.3.zip將其子目錄tools中的hibernate-tools.jar和子目錄lib中的velocity-1.3.1.jarjdom.jar 也復制到D:\java\Hibernate\lib目錄中

           · 解壓xdoclet-bin-1.2.2.zip,將其子目錄lib中的xdoclet-1.2.2.jarxdoclet-hibernate-module-1.2.2.jarxjavadoc-1.1.jarxdoclet-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->構建路徑

            

          二、項目實踐

          /* 

           * 采用常規方法開發一個簡單的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編輯它(參考:利用XMLBuddyEclipse中開發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 nullsql-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&amp;characterEncoding=GBK" 表示使用GBK進行編碼 -->

                  <property name="connection.url">

             jdbc:mysql://localhost:3306/HibernateTest?useUnicode=true&amp;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對象,并進行SessionTransaction的相關操作, 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)
          );

            這里,HibernateTesthibernate.cfg.xml配置文件中的HibernateTest相對應,UserTablehbm映射文件中的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,理論方面我不想過多糾纏,盡量以實例說話。我想,與其憑空說一個技術多好多好,倒不如給我一個可以上手的實例操作一下。好了,不多說廢話了。

          這里以一個簡單的程序來示范Hibernate的配置與功能,在這個例子中的一些操作,實際上會使用一些自動化工具來完成,而不一定親自手動操作設定,這邊完全手動的原因,在于讓你可以知道Hibernate的基本流程。

            這是整個項目的結構:


            好了,下面就開始創建項目了。
            1. 創建項目
            · 新建一個Java項目:HibernateBegin_1,注意選中創建單獨的源文件夾和輸出文件夾。點擊下一步,切換到,點擊添加庫,如下圖:

            · 選擇用戶庫


            · 勾選先前設置好的hibernate用戶庫。


            2. 建立可持久化類
            · 下面開始創建一個新類:User ;包名:javamxj.hibernate

           

          主站蜘蛛池模板: 和平区| 任丘市| 江西省| 万源市| 安化县| 兴安盟| 苗栗市| 鸡西市| 南川市| 象州县| 板桥市| 马边| 若羌县| 临汾市| 新沂市| 乌拉特前旗| 云霄县| 奉新县| 濉溪县| 金平| 麻栗坡县| 甘肃省| 海丰县| 嫩江县| 黎平县| 诏安县| 黔西县| 衡东县| 柯坪县| 玉山县| 从江县| 元江| 定南县| 揭西县| 镇康县| 德江县| 阜康市| 墨玉县| 正安县| 巴青县| 惠水县|