今天看了
hibernate
持久层的概述,就用
myeclipse
试着动手开发了一个简单的学生信息管理小程序。
在开发之前,先要理解一个概念
ORM
。
ORM
(
object-relation mapping
)是对象关系映射,对象指的是
java
中的对象,关系是指关系型数据库,
ORM
也就是指从
Java
对象到数据库之间的映射,也就是通过一个类的操作来代表数据库中的操作。而
Hibernate
是一个
ORM
的实现,所以,主要功能就是操作数据库(以对象的形式操作数据库)。
ORM
模式图如下:
本人运用的开发环境为:
Eclipse
3.2.1+MyEclipse5.1
集成开发环境,数据库为
MySQL4.01
版本。
下面开始动手吧
……
S1 : 创建数据库 , 数据库脚本如下 :
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
。
运行后的界面为: