JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx
- 文档编号:17714553
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:15
- 大小:686.62KB
JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx
《JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JAVAEE Hibernate关系映射实验剖析Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
是
PASSWORD
登录密码
用户详细信息表:
detail
主键,自增
TRUENAME
真实姓名
varchar(8)
电子邮件
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);
三、扩展实验:
自己完成多对一单向关联和一对多双向关联。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA EE Hibernate关系映射实验剖析 Hibernate 关系 映射 实验 剖析
![提示](https://static.bdocx.com/images/bang_tan.gif)