<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如何學(xué)好java

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

    Eclipse快速上手Hibernate之入門實(shí)例

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

        這篇文章主要談?wù)?/span>Hibernate的入門開發(fā),例子很簡單,就是向數(shù)據(jù)表中添加用戶名和密碼。我分別使用了三種方法,一種是直接寫代碼,寫Hbm映射文件等;一種是通過Hbm映射文件來生成代碼;一種是通過代碼來生成Hbm映射文件。使用了一些自動(dòng)化工具,XMLBuddy是用來編輯XML文件的,JBoss Eclipse IDE是用來編寫Doclet標(biāo)記的。這篇文章還談到了一些Eclipse的使用技巧,比如建立用戶庫生成 Getter Setter”等。

     

       關(guān)于一些軟件的使用技巧,我以前的文章都有提及,這里不多說了,必要時(shí)會提示一下。

       

     

    一、下載、安裝和配置

     

    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相對應(yīng)的版本,這里選擇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

     

       同時(shí)也要把 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. 安裝和配置 

     

        這里著重指出一下,需要在環(huán)境變量中設(shè)置 ANT_HOME ,并將其指向Ant安裝目錄,還要在Path變量值中添加 “%ANT_HOME%\bin;” 可以參考 java環(huán)境變量設(shè)置

     

     · XMLBuddy Jboss-ide 我都是采用links方式安裝的,

        參考   http://blog.csdn.net/javamxj/archive/2004/10/11/132311.aspx

     建立庫文件夾:

       D盤下新建一個(gè)java目錄,在此目錄下新建一個(gè)Hibernate子目錄,在此子目錄下再新建一個(gè)lib子目錄。

    D:\

      -java

         Hibernate

                   lib

     · 將下載的hibernate-2.1.8.zip解壓,如解壓后的目錄名為hibernate-2.1,將這個(gè)目錄下的hibernate2.jar復(fù)制到先前建立的lib目錄下,即D:\java\Hibernate\lib目錄;

     · 然后將hibernate-2.1目錄下的lib子目錄中的以下文件也復(fù)制到這個(gè)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 也復(fù)制到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 也復(fù)制到D:\java\Hibernate\lib目錄中

    · 最后將mysql-connector-java-3.0.16-ga-bin.jar文件復(fù)制到這個(gè)lib目錄下。

       這樣,需要用到的庫文件已經(jīng)準(zhǔn)備好了,如果認(rèn)為這樣比較麻煩,也可以將jar文件全部復(fù)制到lib目錄。下面介紹如何在Eclipse中設(shè)置“用戶庫”。

     設(shè)置“用戶庫”

     

    ·窗口 ->首選項(xiàng) ->Java ->構(gòu)建路徑 ->用戶庫,

    · 然后單擊添加JAR”

       這樣,一個(gè)用戶庫文件就做好了,如果要更新Eclipse時(shí),可以將其先導(dǎo)出,然后再導(dǎo)入即可。

    這樣做,對庫文件便于管理,而且如果需要替換或者升級的話都比較方便。

     設(shè)置“構(gòu)建路徑”

    · 點(diǎn)擊菜單“窗口”->首選項(xiàng),以下都在“首選項(xiàng)”中配置:

       Java->構(gòu)建路徑

      

    二、項(xiàng)目實(shí)踐

    /* 

     * 采用常規(guī)方法開發(fā)一個(gè)簡單的Hibernate實(shí)例

     * 創(chuàng)建日期 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; 

    }

      · 點(diǎn)擊工具欄上的源代碼(S,選擇其中的生成 Getter Setter”(右擊,在彈出菜單也可選擇),如圖:



      點(diǎn)擊確定后,生成如下代碼:

    /* 

     * 采用常規(guī)方法開發(fā)一個(gè)簡單的Hibernate實(shí)例

     * 創(chuàng)建日期 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;

     }

    }

      好了,這個(gè)類完成了。它是一個(gè)普通的Java對象(Plain Old Java Objects,就是POJOs,有時(shí)候也稱作Plain Ordinary Java Objects),表示一個(gè)數(shù)據(jù)集合。下面建立一個(gè)Hbm文件將這個(gè)類映射到數(shù)據(jù)庫的表格上。

    3. 映射文件

      在javamxj.hibernate包下,新建一個(gè)名稱為“User.hbm.xml”的文件,使用XMLBuddy編輯它(參考:利用XMLBuddyEclipse中開發(fā)XML),這樣比較方便。文件內(nèi)容如下:

    <?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>

      這個(gè)XML文件定義了對象屬性映射到數(shù)據(jù)庫表的關(guān)系,這里采用了assigned(程序設(shè)置)方式生成主鍵。當(dāng)然還可以使用其它的方式來產(chǎn)生主鍵,后面的文章就采用了其它的方式產(chǎn)生主鍵。<property>標(biāo)簽用于定義Java對象的屬性,這里只定義了最簡單的方式,由Hibernate自動(dòng)判斷Java對象屬性與數(shù)據(jù)庫表名稱對應(yīng)關(guān)系。在<property/>標(biāo)簽上的額外設(shè)定(像是not nullsql-type等),則可以用于自動(dòng)產(chǎn)生Java對象與數(shù)據(jù)庫表的工具上。
      4. 配置文件
       Hibernate可以使用XML或?qū)傩晕募磉M(jìn)行配置,配置文件名默認(rèn)為“hibernate.cfg.xml”(或者hibernate.properties)。
      在src目錄下,新建一個(gè)hibernate.cfg.xml文件,內(nèi)容如下:

    <?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>

            <!-- 是否將運(yùn)行期生成的SQL輸出到日志以供調(diào)試 -->

            <property name="show_sql">true</property>

            <!-- SQL方言,這里設(shè)定的是MySQL -->

            <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>

            <!-- JDBC驅(qū)動(dòng)程序 -->

            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

            <!-- JDBC URL, "?useUnicode=true&amp;characterEncoding=GBK" 表示使用GBK進(jìn)行編碼 -->

            <property name="connection.url">

       jdbc:mysql://localhost:3306/HibernateTest?useUnicode=true&amp;characterEncoding=GBK

            </property>

            <!-- 數(shù)據(jù)庫用戶名 -->

            <property name="connection.username">root</property>

            <!-- 數(shù)據(jù)庫密碼 -->

            <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數(shù)據(jù)庫,你需要在MySql中建立這個(gè)數(shù)據(jù)庫。
      5. 測試程序
      在javamxj.hibernate包下,新建一個(gè)Test類,內(nèi)容如下:

    /* 

     * 簡單測試一下User類

     * 創(chuàng)建日期 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對象,并由它來開啟一個(gè)Session,它代表對象與表格的一次會話操作,而 Transaction則表示一組會話操作,我們只需要直接操作User對象,并進(jìn)行SessionTransaction的相關(guān)操作, Hibernate就會自動(dòng)完成對數(shù)據(jù)庫的操作。

      6. 配置數(shù)據(jù)庫

      在運(yùn)行測試程序之前,還必須先設(shè)置好數(shù)據(jù)庫。

      在MySQL中建立一個(gè)HibernateTest數(shù)據(jù)庫,并建立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相對應(yīng),UserTablehbm映射文件中的UserTable相對應(yīng)。

      7. 運(yùn)行程序

      右擊Test.java,點(diǎn)擊運(yùn)行,可以看到控制臺輸出一系列信息,最后一條輸出語句應(yīng)該是:

    Hibernate: insert into UserTable (username, password, id) values (?, ?, ?)

      在下篇文章中會介紹如何利用log4j來控制輸出信息。

      同時(shí),在數(shù)據(jù)庫中可以看到,數(shù)據(jù)已經(jīng)添加進(jìn)表里了:



      小結(jié):

      Hibernate原理方面我不想多說,實(shí)際上知道也不多,況且這方面的資料很多,比如Hibernate本身自帶的中文文檔、夏昕編寫的《Hibernate開發(fā)指南》、良葛格編寫的Hibernate入門等都是非常不錯(cuò)的,現(xiàn)在關(guān)于Hibetnate的書籍也多了起來。

      我所作的工作就是要使新手能盡快上手Hibernate,理論方面我不想過多糾纏,盡量以實(shí)例說話。我想,與其憑空說一個(gè)技術(shù)多好多好,倒不如給我一個(gè)可以上手的實(shí)例操作一下。好了,不多說廢話了。

      小結(jié):

      Hibernate原理方面我不想多說,實(shí)際上知道也不多,況且這方面的資料很多,比如Hibernate本身自帶的中文文檔、夏昕編寫的《Hibernate開發(fā)指南》、良葛格編寫的Hibernate入門等都是非常不錯(cuò)的,現(xiàn)在關(guān)于Hibetnate的書籍也多了起來。
     
      我所作的工作就是要使新手能盡快上手Hibernate,理論方面我不想過多糾纏,盡量以實(shí)例說話。我想,與其憑空說一個(gè)技術(shù)多好多好,倒不如給我一個(gè)可以上手的實(shí)例操作一下。好了,不多說廢話了。

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

      這是整個(gè)項(xiàng)目的結(jié)構(gòu):


      好了,下面就開始創(chuàng)建項(xiàng)目了。
      1. 創(chuàng)建項(xiàng)目
      · 新建一個(gè)Java項(xiàng)目:HibernateBegin_1,注意選中創(chuàng)建單獨(dú)的源文件夾和輸出文件夾。點(diǎn)擊下一步,切換到,點(diǎn)擊添加庫,如下圖:

      · 選擇用戶庫


      · 勾選先前設(shè)置好的hibernate用戶庫。


      2. 建立可持久化類
      · 下面開始創(chuàng)建一個(gè)新類:User ;包名:javamxj.hibernate

     

    主站蜘蛛池模板: 国产精品视_精品国产免费 | 亚洲成AV人片久久| 色播在线永久免费视频网站| h视频在线观看免费完整版| 久久精品国产精品亚洲| 日韩在线一区二区三区免费视频| 国产又大又粗又硬又长免费| 在线观看亚洲电影| 亚洲精品国产精品乱码不卞| 亚洲阿v天堂在线2017免费| 亚洲人成影院在线无码按摩店| a级毛片免费完整视频| 亚洲国产精品久久久久网站 | 亚洲 欧洲 日韩 综合在线| 无码一区二区三区AV免费| 亚洲色大成网站www永久男同| 香蕉视频在线观看免费国产婷婷| 久久亚洲国产成人影院网站 | 蜜桃精品免费久久久久影院| 国产精品亚洲精品日韩电影| 在线亚洲精品自拍| 少妇人妻偷人精品免费视频| 啊v在线免费观看| 精品一区二区三区高清免费观看| 国产亚洲精品一品区99热| **一级毛片免费完整视| 亚洲午夜精品一区二区麻豆| 亚洲福利精品一区二区三区| 国产日韩一区二区三免费高清 | 亚洲国产成人久久精品大牛影视| 国产在线观看无码免费视频| 亚洲视频小说图片| 日日AV拍夜夜添久久免费| 日本久久久久亚洲中字幕| 一二三四免费观看在线视频中文版| 国产亚洲综合视频| 亚洲AV美女一区二区三区| 成人人观看的免费毛片| 国产在线观a免费观看| 国产亚洲福利在线视频| 国产美女亚洲精品久久久综合|