myeclipse开发hibernate应用程序示例

今天看了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 {
    
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

运行后的界面为:

呵呵终于完成了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值