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

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

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

    隨筆-28  評論-15  文章-81  trackbacks-0
     

    今天看了hibernate持久層的概述,就用myeclipse試著動手開發了一個簡單的學生信息管理小程序。

    在開發之前,先要理解一個概念ORMORMobject-relation mapping)是對象關系映射,對象指的是java中的對象,關系是指關系型數據庫,ORM也就是指從Java對象到數據庫之間的映射,也就是通過一個類的操作來代表數據庫中的操作。而Hibernate是一個ORM的實現,所以,主要功能就是操作數據庫(以對象的形式操作數據庫)。

    ORM模式圖如下:

    本人運用的開發環境為:Eclipse3.2.1+MyEclipse5.1集成開發環境,數據庫為MySQL4.01版本。

    下面開始動手吧……
    S1創建數據庫,數據庫腳本如下:

    create database hibernate;

    use hibernate;

    create table Student

    (

           id varchar(32) not null primary key,

           sName varchar(20) not null,

           sNO varchar(20) not null,

           sex varchar(2),      

           email varchar(30)

    );

    S2:配置MyEclipse環境,使之能夠生成HBM文件,即Hibernate映射文件,過程如下:

    配置MySQL驅動程序:

    Eclipse中,點擊Window à Preferences à MyEclipse à Database Explorer à Drivers à New…

    選擇Driver template 為:MySQL Connector/J

    URL: jdbc:mysql://localhost:3306/hibernate,其中hibernate為數據庫名稱;

    添加MySQL驅動:mysql"lib"mysqldriver.jar,點擊 OK

    現在只是配置好數據庫的環境,但是還沒有真正的生成它,還要創建Database Profile方法如下:

    打開Window à Open PerspectiveàMyEclipse Database Explorer

    選擇其中的New 圖標,上面那個是我以前做過的,因此在新建一個。

    Profile name 由自己來定,我定為JDBC for MySQLDriver 就是選由上面剛剛配置過的

    MySQL Connector/J,點擊Next à Finish

    右鍵剛剛創建的JDBC for MySQL2,打開Open connection…

    出現了我們剛剛創建的數據庫student,好了,可以松一口氣了,暫時先放一放,后面還會用到這個界面的,在打開Window à Open PerspectiveàJava界面。

    S3新建一個J2EEWeb Project ,工程名為StuHibernate

    然后給這個項目添加hibernate必要的文件.在我們項目名上點擊右鍵,選擇MyEclipes --> Add Hibernate Capabilities...彈出對話框如下圖:

    其中,JAR Library Installation 選為 Copy checked Library Jars to Project …項,其它項均為默認,點擊Next,進入下一個頁面后,繼續點擊Next,進入第三個頁面

    選擇 DB Profile 文件JDBC for MySQL,就是我們在S2步驟中配置的數據庫驅動,在這里,我們就什么也不用手動添寫了,直接生成,這就是S2步驟的好處,其中數據庫的言也選為MySQL,點擊Next進入下一頁面

    取消對Crate SessionFactory class? 選項的選擇,點擊Finish。項目結構如下圖:

    src 目錄下產生了一個hibernate.cfg.xml 文件:主要是對Hibernate環境配置的,包括使用的數據庫或數據源。Eclipse為此提供了圖形環境配置,配置方法為在S2步驟中以配置好了,因此直接生成了如下頁面:

    其中本人數據庫密碼為空,因此什么都沒有寫。由于MySQL數據庫驅動以經加了WEB-INF/lib文件夾中,上面的圖中以有顯示。如果沒有加入,則復制到里面。一切準備工作都以就緒,下面我們就開始真正的編寫代碼了!(終于寫到一半了,好累啊,呵呵)

    S4編寫POJO類,也就是持久化類:只包含settergetter方法的類。POJOPlain Old Java Objects)是最普通的Java對象,很像JavaBean。類名最好和表名相同,開頭最好大寫,Student.java

    包名:com.cc.hibernate

    類名:Student

    代碼如下:

    package com.cc.hibernate;

       //POJO

    public class Student {

       //寫入若干屬性

       private String id;

       private String sname;

       private String sno;

       private String sex;

       private String email;

       public String getEmail() {

          return email;

       }

       public void setEmail(String email) {

          this.email = email;

       }

       public String getId() {

          return id;

       }

       public void setId(String id) {

          this.id = id;

       }

       public String getSex() {

          return sex;

       }

       public void setSex(String sex) {

          this.sex = sex;

       }

       public String getSname() {

          return sname;

       }

       public void setSname(String sname) {

          this.sname = sname;

       }

       public String getSno() {

          return sno;

       }

       public void setSno(String sno) {

          this.sno = sno;

       }

    }

    S5建立映射文件,在次打開Window à Open PerspectiveàMyEclipse Database Explorer,接到S2步驟

    右鍵點擊student表,打開Hibernate Reverse Engineering…

    創建到包含有POJO類包的文件夾下:

    點擊 Next,進入下一頁面

    Type Mapping Hibernate types

    主鍵生成方式選為 assigned(指派),由用戶自行完成,單擊 Next,最后點擊 Finish

    在次切回 Window à Open PerspectiveàJava界面,出現 Student.hbm.xml映射文件,雙擊打開查看其代碼。

    此文件完成Student類到student表的關系

    S6編寫具體類,具體操作Hibernate 方法,在Com.cc.hibernate包下

    新建類 StudentOperate.java

    package com.cc.hibernate;

    import org.hibernate.Session;

    import org.hibernate.SessionFactory;

    import org.hibernate.cfg.Configuration;

    import org.hibernate.Transaction;

    public class StudentOperate {

        //在Hibernate中,所有的操作都是通過Session完成

       //此Session不同于JSP的Session

       private Session session=null;

       //在構造方法之中實例化session對象

       public StudentOperate(){

          // 找到Hibernate配置

          Configuration config=new Configuration().configure();

          //從配置中取出SessionFactory

          SessionFactory factory=config.buildSessionFactory();

          //從SessionFactory中取出一個Session

          this.session=factory.openSession();

       }

      

       //所有操作都是由session進行的

       //向數據庫中增加數據

       public void insert(Student student){

          //開始事務

          Transaction tran=this.session.beginTransaction();

          //執行語句

          this.session.save(student);

          //提交事務

          tran.commit();

       }

    }

    S7com.cc.hibernate 包下新建一個測試類 StudentTest.java

    代碼如下:

    package com.cc.hibernate;

    public class StudentTest {

       /**

        * @param args

        */

       public static void main(String[] args) {

          // TODO Auto-generated method stub

          //生成POJO類實例化對象

          Student stu=new Student();

          stu.setId("006");

          stu.setSname("chen");

          stu.setSno("03170217");

          stu.setSex("男");

          stu.setEmail("chenchuang.sy@163.com");

         

          //實例化 StudentOperate 對象

          StudentOperate op=new StudentOperate();

          op.insert(stu);

       }

    }

    運行后的頁面為:

    再次查看數據庫,看是否添加成功。

    如果希望看見所執行的SQL語句,打開hibernate.cfg.xml文件

    點擊 Add按鈕后,出現如下頁面:

    選擇Propertyshow_sql,設置Valueture,點擊OK

    運行后的界面為:

    呵呵終于完成了!

    posted on 2007-10-10 20:51 譚明 閱讀(405) 評論(0)  編輯  收藏 所屬分類: Eclipse

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


    網站導航:
     
    主站蜘蛛池模板: 永久免费无码日韩视频| 天天综合亚洲色在线精品| 人与动性xxxxx免费| 国产免费av片在线播放| 亚洲日本一线产区和二线| 18禁无遮挡无码国产免费网站| 久久精品国产亚洲av四虎| 三级网站在线免费观看| 亚洲日韩av无码| 在线免费播放一级毛片| 伊人久久大香线蕉亚洲五月天| 成人网站免费大全日韩国产| 亚洲码国产精品高潮在线| 久久免费看少妇高潮V片特黄| 99久久精品国产亚洲| 麻豆国产精品免费视频| 亚洲一区精彩视频| 卡一卡二卡三在线入口免费| 亚洲AⅤ男人的天堂在线观看| 亚洲国产成人VA在线观看| a视频在线观看免费| 亚洲综合区图片小说区| 男女超爽刺激视频免费播放| 亚洲AⅤ男人的天堂在线观看| 久久影视国产亚洲| 日韩免费无码视频一区二区三区| 亚洲黄色中文字幕| 国产在线不卡免费播放| 中文字幕无码日韩专区免费| 亚洲综合久久成人69| 香蕉高清免费永久在线视频| 国产成人无码免费看片软件| 亚洲人成影院在线| 女人让男人免费桶爽30分钟| jzzjzz免费观看大片免费| 久久亚洲中文字幕精品有坂深雪| 免费看美女被靠到爽| 国产免费福利体检区久久| 永久亚洲成a人片777777| 特级毛片在线大全免费播放| 亚洲情综合五月天|