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

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

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

    posts - 37,  comments - 9,  trackbacks - 0
            使用的是Hibernate3.2.x版本。數據庫采用的是MySQL5.1。實現保存用戶的功能。由于主要是搭建開發(fā)環(huán)境以及寫第一個測試的小應用,因此里面的代碼只是簡單的實現功能。
            1.下載Hibernate3.2。www.hibernate.org現在可能很難找到該版本,所以可以在百度搜索一下。下載后將壓縮文件解壓到本地硬盤,例如,我解壓到F:\hibernate-3.2目錄。
            2.安裝MySQL數據庫,創(chuàng)建一個叫hibernatefirst的數據庫,然后use該數據庫(關于MySQL安裝以及MySQL如何創(chuàng)建數據庫等這里就不詳細說了。)
            3.在MyEclipse中新建一個Java項目(不用是Web項目,Java項目即可),取名為hibernate。在項目下新建一個Folder,取名為lib,將hibernate解壓路徑下的hibernate3.jar文件,以及hibernate解壓路徑下的lib目錄下的所有jar文件一并拷貝到該lib目錄下。此外,hibernate作為一個持久層框架,其底層使用的依然是JDBC,因此,需要將MySQL的JDBC驅動加入該lib目錄下。這樣hibernate需要的jar文件就齊了。但是這些jar文件并沒有加入該項目的classpath中,因此是無法在項目中引用的。因此,選中項目下lib目錄下的所有jar文件,右鍵—>buildpath—>Add to Buildpath。
            4.環(huán)境已經搭建好了,開始第一個簡單的hibernate項目吧。在src目錄下新建包:com.xiaobai.hibernate.domain,在其下創(chuàng)建類User,代碼如下:
     1package com.xiaobai.hibernate.domain;
     2
     3import java.util.Date;
     4
     5public class User {
     6
     7    private int id;
     8    private String name;
     9    private Date birthday;
    10    public int getId() {
    11        return id;
    12    }

    13    public void setId(int id) {
    14        this.id = id;
    15    }

    16    public String getName() {
    17        return name;
    18    }

    19    public void setName(String name) {
    20        this.name = name;
    21    }

    22    public Date getBirthday() {
    23        return birthday;
    24    }

    25    public void setBirthday(Date birthday) {
    26        this.birthday = birthday;
    27    }

    28}

    29

            5.為User類編寫映射文件User.hbm.xml。在com.xiaobai.hibetnate.domain包下創(chuàng)建該文件,作為新手肯定不知道該文件中到底應該寫點什么,沒關系,hibernate為我們提供的示例中有,copy過來再進行修改就好。到hibernate解壓路徑下的eg\org\hibernate\auction路徑下,拷貝一個User.hbm.xml文件過來,將<hibernate-mapping>標簽內的內容全部刪除,將<hibernate-mapping>標簽的package改成User類所在的包,也就是該映射文件所在的包。然后在<hibernate-mapping>標簽對中添加如下內容:
    1<class name="User">        
    2        <id name="id">
    3            <generator class="native"/>
    4        </id>
    5        <property name="name"/>
    6        <property name="birthday"/>
    7</class>
    差點忘了說明,映射文件的命名是XXX.hbm.xml,其中的XXX是你所要映射的domain對象的名稱,例如這里是User。
            6.編寫hibernate配置文件hibernate.cfg.xml。到hibernate解壓路徑下的etc目錄下拷貝一份到src目錄下,注意不在包下,而是在src目錄下。將以下代碼覆蓋copy過來的版本:
     1<!DOCTYPE hibernate-configuration PUBLIC
     2    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     3    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     4
     5<hibernate-configuration>
     6    <session-factory>
     7        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
     8        <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
     9        <property name="hibernate.connection.username">root</property>
    10        <property name="hibernate.connection.password">******</property>
    11        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    12        <property name="hibernate.hbm2ddl.auto">create</property>
    13        
    14        <property name="show_sql">true</property>
    15        <mapping resource="com/xiaobai/hibernate/domain/User.hbm.xml"/>
    16    </session-factory>
    17</hibernate-configuration>
    前面數過,hibernate底層也是通過JDBC實現的,因此也需要提供連接數據庫的信息,所以前面四條屬性就不難理解了。由于hibernate能支持很多關系型數據庫,那么生成sql語句時,會根據數據庫不同而作一定的調整,所以,需要配置數據庫方言的信息,這就是第五條所配置的。默認情況下,我們只創(chuàng)建了數據庫,數據庫中并沒有User對應的表,因此,保存User對象前需要先創(chuàng)建表,那么第六條配置的就是這個內容。另外,第七條配置讓hibernate在打印生成的sql語句。最后,不要忘了將映射文件以資源的形式加入配置文件,這就是<mapping>標簽中配置的內容。這么多的屬性name是不用記住的,進入hibernate解壓路徑,etc目錄下有一個hibernate.properties文件,里面包含了所有的屬性的示例。在配置的時候照貓畫虎拷貝需要的過來進行修改即可。
            7.配置搞定,下面編寫一個測試類,代碼如下:
     1package com.xiaobai.hibernate;
     2
     3import java.util.Date;
     4
     5import org.hibernate.Session;
     6import org.hibernate.SessionFactory;
     7import org.hibernate.Transaction;
     8import org.hibernate.cfg.Configuration;
     9
    10import com.xiaobai.hibernate.domain.User;
    11
    12public class Base {
    13    public static void main(String[] args) {
    14        Configuration cfg = new Configuration().configure();
    15        
    16        SessionFactory factory = cfg.buildSessionFactory();
    17        
    18        Session session = factory.openSession();
    19        
    20        Transaction tx = session.beginTransaction();
    21        
    22        User user = new User();
    23        user.setName("張三");
    24        user.setBirthday(new Date());
    25        
    26        session.save(user);
    27        tx.commit();
    28        
    29        session.close();
    30        factory.close();
    31        
    32        
    33    }

    34}

    35

    這段代碼僅僅是為了實現功能,實際上是很不完善的,后面的文章會討論如何寫完善的合理的代碼。運行該類。進入數據庫,發(fā)現數據庫中多了一張user表,查看里面的數據,已經添加了一條name為“張三”的數據。OK,第一個hibernate小示例完成了。
    posted on 2010-08-28 18:56 wawlian 閱讀(1296) 評論(0)  編輯  收藏 所屬分類: Hibernate

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     

    <2010年8月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 又硬又粗又长又爽免费看| 亚洲乱妇老熟女爽到高潮的片| 高潮毛片无遮挡高清免费视频 | 免费h成人黄漫画嘿咻破解版| 亚洲中文字幕日本无线码| 99久久综合国产精品免费| 亚洲夂夂婷婷色拍WW47| 全免费a级毛片免费看不卡| 亚洲色大情网站www| 免费日韩在线视频| 免费激情网站国产高清第一页| 亚洲男人的天堂在线va拉文| 国产免费区在线观看十分钟 | 亚洲美免无码中文字幕在线| 亚洲精品在线免费看| 色偷偷亚洲女人天堂观看欧| 无人在线直播免费观看| 日韩色日韩视频亚洲网站 | 67194成手机免费观看| 亚洲成人高清在线观看| 成人免费午夜视频| 手机永久免费的AV在线电影网| 亚洲精品乱码久久久久久按摩| 久9这里精品免费视频| 欧洲 亚洲 国产图片综合| 亚洲AV日韩精品一区二区三区| 两性色午夜免费视频| 777亚洲精品乱码久久久久久| 成年女人18级毛片毛片免费| 免费看又黄又爽又猛的视频软件| 亚洲精品高清国产一线久久| 久久精品人成免费| 亚洲AV成人无码网站| 亚洲成AV人片在线观看| 成年人免费网站在线观看| 国产区在线免费观看| 亚洲日本人成中文字幕| 亚洲一区二区女搞男| 无码国产精品久久一区免费| 男女一边桶一边摸一边脱视频免费| 亚洲狠狠ady亚洲精品大秀|