myeclipse开发hibernate应用程序示例

今天看了 hibernate 持久层的概述,就用 myeclipse 试着动手开发了一个简单的学生信息管理小程序。

 

在开发之前,先要理解一个概念 ORM ORM object-relation mapping )是对象关系映射,对象指的是 java 中的对象,关系是指关系型数据库, ORM 也就是指从 Java 对象到数据库之间的映射,也就是通过一个类的操作来代表数据库中的操作。而 Hibernate 是一个 ORM 的实现,所以,主要功能就是操作数据库(以对象的形式操作数据库)。

 

ORM 模式图如下:

 

 

本人运用的开发环境为: Eclipse 3.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 新建一个 J2EE Web 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 类,也就是持久化类:只包含 setter getter 方法的类。 POJO Plain 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();

 

    }

 

}

 

 

S7 com.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 按钮后,出现如下页面:

 

 

选择 Property show_sql ,设置 Value ture ,点击 OK

 

运行后的界面为:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值