myeclipse开发hibernate应用程序示例

本文介绍了如何利用MyEclipse集成开发环境结合Hibernate框架开发一个学生信息管理程序。从搭建开发环境、配置数据库连接到创建映射文件及具体业务逻辑实现进行了详细说明。
今天看了hibernate持久层的概述,就用myeclipse试着动手开发了一个简单的学生信息管理小程序。
在开发之前,先要理解一个概念ORMORMobject-relation mapping)是对象关系映射,对象指的是java中的对象,关系是指关系型数据库,ORM也就是指从Java对象到数据库之间的映射,也就是通过一个类的操作来代表数据库中的操作。而Hibernate是一个ORM的实现,所以,主要功能就是操作数据库(以对象的形式操作数据库)。
ORM模式图如下:
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"></shapetype><stroke joinstyle="miter"></stroke><formulas></formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f><lock aspectratio="t" v:ext="edit"></lock><shape id="_x0000_i1025" style="WIDTH: 338.25pt; HEIGHT: 339.75pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata>
本人运用的开发环境为:Eclipse<chsdate year="1899" month="12" w:st="on" isrocdate="False" islunardate="False" day="30"></chsdate>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)
);
<shape id="_x0000_i1026" style="WIDTH: 415.5pt; HEIGHT: 310.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png"></imagedata>
S2:配置MyEclipse环境,使之能够生成HBM文件,即Hibernate映射文件,过程如下:
配置MySQL驱动程序:
Eclipse中,点击Window à Preferences à MyEclipse à Database Explorer à Drivers à New…
<shape id="_x0000_i1027" style="WIDTH: 393pt; HEIGHT: 333pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png"></imagedata>
选择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
<shape id="_x0000_i1028" style="WIDTH: 186pt; HEIGHT: 74.25pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image007.png"></imagedata>
选择其中的New 图标,上面那个是我以前做过的,因此在新建一个。
<shape id="_x0000_i1029" style="WIDTH: 394.5pt; HEIGHT: 321pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image009.png"></imagedata>
Profile name 由自己来定,我定为JDBC for MySQLDriver 就是选由上面刚刚配置过的
MySQL Connector/J,点击Next à Finish
<shape id="_x0000_i1030" style="WIDTH: 196.5pt; HEIGHT: 142.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image011.png"></imagedata>
右键刚刚创建的JDBC for MySQL2,打开Open connection…
<shape id="_x0000_i1031" style="WIDTH: 182.25pt; HEIGHT: 206.25pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image013.png"></imagedata>
出现了我们刚刚创建的数据库student,好了,可以松一口气了,暂时先放一放,后面还会用到这个界面的,在打开Window à Open PerspectiveàJava界面。
S3新建一个J2EEWeb Project ,工程名为StuHibernate
<shape id="_x0000_i1032" style="WIDTH: 180.75pt; HEIGHT: 88.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image015.png"></imagedata>
然后给这个项目添加hibernate必要的文件.在我们项目名上点击右键,选择MyEclipes --> Add Hibernate Capabilities...弹出对话框如下图:
<shape id="_x0000_i1033" style="WIDTH: 414.75pt; HEIGHT: 343.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image017.png"></imagedata>
其中,JAR Library Installation 选为 Copy checked Library Jars to Project …项,其它项均为默认,点击Next,进入下一个页面后,继续点击Next,进入第三个页面
<shape id="_x0000_i1034" style="WIDTH: 414.75pt; HEIGHT: 346.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image019.png"></imagedata>
选择 DB Profile 文件JDBC for MySQL,就是我们在S2步骤中配置的数据库驱动,在这里,我们就什么也不用手动添写了,直接生成,这就是S2步骤的好处,其中数据库的言也选为MySQL,点击Next进入下一页面
<shape id="_x0000_i1035" style="WIDTH: 415.5pt; HEIGHT: 342.75pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image021.png"></imagedata>
取消对Crate SessionFactory class? 选项的选择,点击Finish。项目结构如下图:
<shape id="_x0000_i1036" style="WIDTH: 179.25pt; HEIGHT: 315pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image023.png"></imagedata>
src 目录下产生了一个hibernate.cfg.xml 文件:主要是对Hibernate环境配置的,包括使用的数据库或数据源。Eclipse为此提供了图形环境配置,配置方法为在S2步骤中以配置好了,因此直接生成了如下页面:
<shape id="_x0000_i1037" style="WIDTH: 415.5pt; HEIGHT: 330.75pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image025.png"></imagedata>
其中本人数据库密码为空,因此什么都没有写。由于MySQL数据库驱动以经加了WEB-INF/lib文件夹中,上面的图中以有显示。如果没有加入,则复制到里面。一切准备工作都以就绪,下面我们就开始真正的编写代码了!(终于写到一半了,好累啊,呵呵)
S4编写POJO类,也就是持久化类:只包含settergetter方法的类。POJOPlain Old Java Objects)是最普通的Java对象,很像JavaBean。类名最好和表名相同,开头最好大写,Student.java
<shape id="_x0000_i1038" style="WIDTH: 413.25pt; HEIGHT: 440.25pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image027.png"></imagedata>
包名:com.cc.hibernate
类名:Student
代码如下:
package com.cc.hibernate;
//POJO
publicclass Student {
//写入若干属性
private String id;
private String sname;
private String sno;
private String sex;
private String email;
public String getEmail() {
returnemail;
}
publicvoid setEmail(String email) {
this.email = email;
}
public String getId() {
returnid;
}
publicvoid setId(String id) {
this.id = id;
}
public String getSex() {
returnsex;
}
publicvoid setSex(String sex) {
this.sex = sex;
}
public String getSname() {
returnsname;
}
publicvoid setSname(String sname) {
this.sname = sname;
}
public String getSno() {
returnsno;
}
publicvoid setSno(String sno) {
this.sno = sno;
}
}
S5建立映射文件,在次打开Window à Open PerspectiveàMyEclipse Database Explorer,接到S2步骤
<shape id="_x0000_i1039" style="WIDTH: 313.5pt; HEIGHT: 313.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image029.png"></imagedata>
右键点击student表,打开Hibernate Reverse Engineering…
创建到包含有POJO类包的文件夹下:
<shape id="_x0000_i1040" style="WIDTH: 414.75pt; HEIGHT: 215.25pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image031.png"></imagedata>
点击 Next,进入下一页面
<shape id="_x0000_i1041" style="WIDTH: 414.75pt; HEIGHT: 196.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image033.png"></imagedata>
Type Mapping Hibernate types
主键生成方式选为 assigned(指派),由用户自行完成,单击 Next,最后点击 Finish
在次切回 Window à Open PerspectiveàJava界面,出现 Student.hbm.xml映射文件,双击打开查看其代码。
<shape id="_x0000_i1042" style="WIDTH: 180pt; HEIGHT: 121.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image035.png"></imagedata>
此文件完成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;
publicclass StudentOperate {
//Hibernate中,所有的操作都是通过Session完成
//Session不同于JSPSession
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进行的
//向数据库中增加数据
publicvoid insert(Student student){
//开始事务
Transaction tran=this.session.beginTransaction();
//执行语句
this.session.save(student);
//提交事务
tran.commit();
}
}
S7com.cc.hibernate 包下新建一个测试类 StudentTest.java
代码如下:
package com.cc.hibernate;
publicclass StudentTest {
/**
*@paramargs
*/
publicstaticvoid 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);
}
}
运行后的页面为:
<shape id="_x0000_i1043" style="WIDTH: 415.5pt; HEIGHT: 82.5pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image037.png"></imagedata>
再次查看数据库,看是否添加成功。
如果希望看见所执行的SQL语句,打开hibernate.cfg.xml文件
<shape id="_x0000_i1044" style="WIDTH: 415.5pt; HEIGHT: 329.25pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image039.png"></imagedata>
点击 Add按钮后,出现如下页面:
<shape id="_x0000_i1045" style="WIDTH: 391.5pt; HEIGHT: 167.25pt" type="#_x0000_t75"></shape><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CCC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image041.png"></imagedata>
选择Propertyshow_sql,设置Valueture,点击OK
运行后的界面为:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值