JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx

上传人:b****6 文档编号:17714553 上传时间:2022-12-08 格式:DOCX 页数:15 大小:686.62KB
下载 相关 举报
JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx_第1页
第1页 / 共15页
JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx_第2页
第2页 / 共15页
JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx_第3页
第3页 / 共15页
JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx_第4页
第4页 / 共15页
JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx

《JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx

 

PASSWORD

登录密码

用户详细信息表:

detail

主键,自增

TRUENAME

真实姓名

varchar(8)

EMAIL

电子邮件

varchar(50)

3.在MyEclipse中创建对MySQL的连接

1)切换到“MyEclipseDatabaseExplorer”视图,新建MySQL数据库连接驱动。

启动MyEclipse,选择【Window】→【OpenPerspective】→【MyEclipseDatabaseExplorer】菜单项,打开MyEclipseDatabase浏览器,右击菜单,如下图所示,选择【New…】菜单项,出现如图所示的对话框,编辑数据库连接驱动。

Drivertemplate:

MySQLConnector/J

Drivername:

com.mysql.jdbc.Driver

(在url中添加characterEncoding参数,否则在数据库中不能显示中文)

ConnectionURL:

jdbc:

mysql:

//localhost:

3306/javaee?

characterEncoding=gbk

注:

javaee要修改成你所使用的数据库名称

Username:

root

Password:

JDBC驱动存放位置:

c盘lib文件夹下

2)测试连接:

在MyEclipseDatabase浏览器中,右击刚才创建的MyConn数据库连接,选择“Openconnection…”菜单项,打开名为“MyConn”的数据连接,如图所示:

4.添加Hibernate开发能力

右击项目名lab6,选择【MyEclipse】→【AddHibernateCapabilites】菜单项,出现如下图所示的对话框,选择Hibernate框架应用版本及所需要的类库。

单击【Next】按钮,进入如下图所示界面。

创建Hibernate配置文件hibernate.cfg.xml,将该文件放在src文件夹下,后面会详细介绍该文件内容。

这里先说明添加Hibernate开发功能的步骤。

单击【Next】按钮,进入如下图所示界面,指定Hibernate数据库连接细节。

由于在前面已经配置一个名为MyConn的数据库连接,所以这里只需要选择DBDriver为“MyConn”即可。

单击【Next】按钮,出现如下图所示界面。

Hibernate中有一个与数据库打交道重要的类Session。

而这个类是由工厂SessionFactory创建的。

这个界面询问是否需要创建SessionFactory类。

如果需要创建,还需要指定创建的位置和类名。

这些接口都会在后面详细介绍。

单击【Finish】按钮,完成Hibernate的配置。

5.生成数据库表对应的Java类对象和映射文件

在MyEclispse下创建一个名为“org.model”的包,这个包将用来存放与数据库表对应的Java类POJO。

打开MyEclipseDatabaseExplorer视图。

打开前面创建的MyConn数据连接,选择【XSCJ】→【TABLE】菜单项,右击相应表(登录表和用户信息表),选择【HibernateReverseEngineering…】菜单项,如下图所示,将启动HibernateReverseEngineering向导,该向导用于完成从已有的数据库表生成对应的Java类和相关映像文件的配置工作。

首先,选择生成的Java类和映像文件所在的位置,如图所示。

单击【Next】按钮,进入如图所示的界面,选择主键生成策略。

下面列举需要修改的代码,修改后的代码如下。

Detail.java

packageorg.model;

publicclassDetail{

privateStringemail;

privateLoginlogin;

//省略getter和setter方法及构造函数(反向工程自动生成的构造函数必须有否则操作数据库会报错)

}

Login.java

publicclassLogin{

privateStringpassword;

privateDetaildetail;

//省略getter和setter方法及构造函数

Login.hbm.xml

……

<

hibernate-mapping>

!

--name指定POJO类,table指定对应数据库的表-->

<

classname="

org.model.Login"

table="

login"

>

idname="

id"

type="

java.lang.Integer"

--name指定主键,type指定主键类型-->

columnname="

ID"

length="

4"

/>

--采用foreign标志生成器,直接采用外键的属性值-->

<

generatorclass="

foreign"

paramname="

property"

detail<

/param>

/generator>

/id>

propertyname="

username"

java.lang.String"

USERNAME"

/>

/property>

password"

PASSWORD"

one-to-onename="

detail"

class="

org.model.Detail"

constrained="

true"

/class>

/hibernate-mapping>

Detail.hbm.xml

identity"

trueName"

TRUENAME"

email"

EMAIL"

cascade="

all"

lazy="

false"

注意:

检查一下在hibernate.cfg.xml文件中是否已加入配置映射文件的语句

mappingresource="

org/model/Detail.hbm.xml"

org/model/Login.hbm.xml"

6.测试类Test.java

Test.java:

//此处省略main方法

Sessionsession=HibernateSessionFactory.getSession();

Transactionts=session.beginTransaction();

//创建事务对象

Detaildetail=newDetail();

Loginlogin=newLogin();

login.setUsername("

yanhong"

);

login.setPassword("

123"

detail.setTruename("

严红"

detail.setEmail("

yanhong@"

login.setDetail(detail);

detail.setLogin(login);

session.save(detail);

mit();

HibernateSessionFactory.closeSession();

二、多对多的关系映射

1.建立数据库及表结构

学生表:

student

int

SNUMBER

学号

varchar(10)

SNAME

姓名

SAGE

年龄

课程表:

course

ID

int

CNUMBER

课程号

varchar(10)

CNAME

课程名

varchar(20)

学生选课表(连接表):

stu_cour

SID

学生ID号

CID

课程ID号

3.生成数据库表对应的Java类对象和映射文件

打开前面创建的MyConn数据连接,选择【XSCJ】→【TABLE】菜单项,右击相应表(学生表和课程信息表),选择【HibernateReverseEngineering…】菜单项,如下图所示,将启动HibernateReverseEngineering向导,该向导用于完成从已有的数据库表生成对应的Java类和相关映像文件的配置工作。

Student.java

importjava.util.HashSet;

importjava.util.Set;

publicclassStudentimplementsjava.io.Serializable{

privateintsage;

privateSetcourses=newHashSet();

//省略上述各属性的getter和setter方法及构造函数(反向工程自动生成的构造函数必须有否则操作数据库会报错)

Course.java

publicclassCourseimplementsjava.io.Serializable{

privateStringcname;

privateSetstus=newHashSet();

//省略上述各属性的getter和setter方法

Student.hbm.xml

setname="

courses"

stu_cour"

cascade="

keycolumn="

SID"

/key>

many-to-manyclass="

org.model.Course"

column="

CID"

/set>

Course.hbm.xml

stus"

<

org.model.Student"

org/model/Course.hbm.xml"

org/model/Student.hbm.xml"

Coursecour1=newCourse();

Coursecour2=newCourse();

Coursecour3=newCourse();

cour1.setCnumber("

101"

cour1.setCname("

计算机基础"

cour2.setCnumber("

102"

cour2.setCname("

数据库原理"

cour3.setCnumber("

103"

cour3.setCname("

计算机原理"

Setcourses=newHashSet();

courses.add(cour1);

courses.add(cour2);

courses.add(cour3);

Studentstu=newStudent();

stu.setSnumber("

081101"

stu.setSname("

李方方"

stu.setSage(21);

stu.setCourses(courses);

session.save(stu);

三、扩展实验:

自己完成多对一单向关联和一对多双向关联。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1