隨筆-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 譚明 閱讀(407) 評論(0)  編輯  收藏 所屬分類: Eclipse

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


          網站導航:
           
          主站蜘蛛池模板: 乡宁县| 武胜县| 马边| 霍州市| 专栏| 漳州市| 祁阳县| 岳池县| 丹巴县| 连平县| 威远县| 桃源县| 剑川县| 都江堰市| 读书| 朝阳区| 新平| 平邑县| 景东| 青田县| 石景山区| 德格县| 海伦市| 吉水县| 新邵县| 偏关县| 织金县| 开原市| 涡阳县| 常宁市| 普定县| 康乐县| 广宗县| 樟树市| 上林县| 郎溪县| 漳平市| 万全县| 宜川县| 祁东县| 页游|