一路拾遺
          Collect By Finding All The Way ......
          posts - 81,comments - 41,trackbacks - 0

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

          在開發之前,先要理解一個概念ORM。ORMobject-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 MySQL,Driver 就是選由上面剛剛配置過的

          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文件夾中,上面的圖中以有顯示。如果沒有加入,則復制到里面。一切準備工作都以就緒,下面我們就開始真正的編寫代碼了?。ńK于寫到一半了,好累啊,呵呵)

          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 {
              
          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 2008-07-23 16:54 胖胖泡泡 閱讀(15650) 評論(16)  編輯  收藏

          FeedBack:
          # re: myeclipse開發hibernate應用程序示例[未登錄]
          2009-05-02 14:15 | liu
          非常感謝
            回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2009-05-12 20:17 | newibie
          比網上其它的介紹好多了,很清楚!!!  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2009-05-15 18:05 | liyuanyuan
          謝謝,太清楚了、。。。。  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2009-11-25 21:49 | voilet

          運行時出現
          Launch configuration ASTFrame references non-existing project HibernateTest.
          的錯誤~~ 是怎么回事?。?我實在是沒辦法了~~ 請教一下
            回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例[未登錄]
          2010-06-15 09:47 | li
          挺好的,謝謝!  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2012-04-03 20:16 | Danny Tam
          大哥,可幸苦了你了。真的很詳細!灰常感激你的分享。  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例[未登錄]
          2012-08-27 10:18 | test
          大哥,2012了,對我還有幫助啊  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例[未登錄]
          2012-08-27 10:18 | test
          大哥2012快樂  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2012-11-29 11:44 | 驚人
          大哥好人,太感謝了,對我幫助很大。  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2013-05-02 14:24 | 啊大聲道
          !!!!太感謝  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2013-07-25 10:06 | wzf
          步驟很詳細,我很快就上手了  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2013-10-07 21:27 | 第三方
          有錯誤啊  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2013-10-07 21:37 | 第三方
          類名一定要大寫,hibernate版本要小于4才行?。。。。?!  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例[未登錄]
          2013-11-08 21:45 | 1
          not bad  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例
          2014-09-24 10:13 | ~!
          做得很認真,頂一個  回復  更多評論
            
          # re: myeclipse開發hibernate應用程序示例[未登錄]
          2015-08-13 15:11 |
          真的好好...  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 洛隆县| 阿克陶县| 郁南县| 桂东县| 安新县| 寻乌县| 贺州市| 宁陵县| 宜丰县| 介休市| 贺兰县| 乌什县| 通渭县| 汉中市| 沁阳市| 福清市| 阳新县| 乌什县| 临海市| 武功县| 准格尔旗| 井研县| 云林县| 阜宁县| 郴州市| 梁平县| 台中县| 宁安市| 信阳市| 隆回县| 株洲市| 远安县| 铜陵市| 延津县| 宁德市| 饶阳县| 个旧市| 武陟县| 天津市| 工布江达县| 江永县|