JavaEE教案 16.docx
- 文档编号:2247509
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:21
- 大小:144.79KB
JavaEE教案 16.docx
《JavaEE教案 16.docx》由会员分享,可在线阅读,更多相关《JavaEE教案 16.docx(21页珍藏版)》请在冰豆网上搜索。
JavaEE教案16
重庆正大软件职业技术学院教案(项目类)
授课对象
系别
软件系
本次课学时
4学时
年级班次
大二
章节题目
第4章搭建hibernate框架
目的要求(含技能要求)
了解orm概念,作用
了解hibernate概念,作用
掌握hibernate数据库基本配置
掌握hibernate对象映射配置
本节重点
掌握hibernate数据库基本配置
掌握hibernate对象映射配置
本节难点
了解orm概念,作用
了解hibernate概念,作用
教学方法
项目教学法
教学用具
机房、屏幕广播
问题引入
通过用户注册数据入库案例,从而引出本次课程。
难点与重点讲解方法
引导、分析、讲解、实作演示
本次课小结
课程小结
教后礼记
讨论、思考题、作业(含实训作业)
完成本次课的课堂任务
填写实验报告
任务介绍(5分钟)
根据注册信息在数据库中创建数据库及用户信息表,使用hibernate框架实现注册信息入库。
任务解析(50-60分钟)
1.加入hibernate相关jar包(只需加一次)
2.【可选】创建注册用户表结构
3.创建实体类与表的映射文件
4.配置hibernate全局配置文件
5.dao层:
增加注册入库数据处理类
6.service层:
增加注册业务处理类
7.action层,修改注册业务控制类
8.调试运行
详细步骤
1.在使用struts2的web项目里引入所需hibernate相关的jar文件
hibernate相关jar文件只需要引入一次,具体要引入的jar文件详见本节任务解析的例子3.1-1的相关内容。
2.【可选】创建注册用户表结构
创建用户表user,表结构如表3.1-2所示。
表3.1-2用户信息表user
字段编号
英文字段名
中文描述
字段类型
备注
1.
id
流水号
int
自增、pk、notnull
2.
name
会员登录名
varchar(50)
notnull
3.
userName
真实姓名
varchar(50)
4.
password
用户密码
varchar(20)
notnull
5.
sex
性别
varchar
(2)
notnull
6.
province
省份
varchar(20)
7.
age
年龄
int
8.
birth
生日
date
9.
mobile
手机
varchar(20)
10.
电子邮箱
varchar(50)
11.
hobbies
爱好
varchar(255)
注:
若已经编写好user表对应的实体类和实体映射文件,以及在hibernate全局配置文件的
特别提醒,若user表已经存在,则会删除旧的user表,重新创建新的,会导致旧表中记录全部丢失,所以一般建议该配置仅使用一次,在使用之后可以将
3.创建实体类与映射文件
在工程src目录下的com.zdsoft.domain包中新增与user表对应的实体类User,参考如下:
publicclassUser{
intid;
Stringname;
StringuserName;
Stringpassword;
Stringsex;
Stringprovince;
intage;
Datebirth;
Stringmobile;
Stringhobbies;
Stringemail;
//以下省略每个成员变量的get/set方法
}
在com.zdsoft.domain包下新增User.hbm.xml映射文件,具体步骤如下:
首先在User.hbm.xml映射文件中加入文件头,代码如下(一般是固定的,无需改动):
xmlversion="1.0"?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
其次在User.hbm.xml文件的文件头下面添加hibernate-mapping节点,关键代码如下:
package属性表示所描述的实体类的路径,本任务的实体类都在com.zdsoft.domain包下,所以做如此配置。
接着在hibernate-maaping节点下添加class节点,关键代码如下:
class节点的name属性表示映射类的类名称。
再次,在class节点下添加相关子节点,参考代码如下:
注:
id节点表示所描述类的标识符,其中name属性表示标识符的名称,column属性表示该标识符对应数据库表中的列名称,若映射类中的属性与表中的字段名完全一样,则column属性可以省略。
4.配置hibernate全局配置文件
在hibernate.cfg.xml文件的
(其实就是让hibernate框架知道并管理我们增加的一个新的实体-关系映射)
5.dao层:
增加注册入库数据处理类
在com.zdsoft.dao包下新增RegisterDao,该类编写的详细步骤如下:
首先在RegisterDao类中定义hibernate框架所使用的成员变量,参考如下:
Configurationcfg=null;
SessionFactorysessionFactory=null;
Sessionsession=null;
Transactiontx=null;
其次定义RegisterDao类的构造方法,参考如下:
publicRegisterDao(){
cfg=newConfiguration();
cfg.configure();
sessionFactory=cfg.buildSessionFactory();
}
再定义保存User对象的save方法,并实现该方法:
publicbooleansave(Useruser){
booleanret=false;
try{
session=sessionFactory.openSession();
tx=session.beginTransaction();
session.save(user);
mit();
ret=true;
}catch(HibernateExceptione){
if(tx!
=null){
tx.rollback();
}
e.printStackTrace();
ret=false;
}
if(session!
=null){
session.close();
}
returnret;
}
6.service层:
增加注册业务处理类
在com.zdsoft.service包下新增RegisterService类,该类创建详细步骤如下:
首先在RegisterService类中定义成员变量RegisterDao:
privateRegisterDaoregisterDao=newRegisterDao();
再在RegisterService类中定义register方法:
publicbooleanregister(Useruser){
returnregisterDao.save(user);
}
7.action层:
修改注册业务控制类
修改com.zdsoft.action包中的RegisterAction类(RegisterAction的初始代码请参考前面章节),调用相应的业务逻辑层方法,关键代码如下:
publicStringregist(){
//业务控制器
//调用业务处理类完成业务处理,并得到业务处理的结果,在调用的时候需要传数据
RegisterServiceregisterService=newRegisterService();
//数据准备:
数据复制给实体类的对象user
Useruser=newUser();
user.setName(name);
user.setUserName(username);
user.setPassword(pass);
user.setSex(sex);
user.setProvince(province);
user.setAge(age);
user.setBirth(birth);
user.setMobile(mobile);
user.setEmail(email);
Stringtmp="";
if(love!
=null){
for(Stringlo:
love){
tmp+=lo+"";
}
}
user.setHobbies(tmp);
//调用业务处理类相关方法执行后得到结果
booleanret=registerService.register(user);
//根据结果返回
if(ret){
return"success";
}else{
return"error";
}
}
8.调试运行
将项目发布到web服务器中运行注册页面,输入注册信息如图3.1-3a所示,点击提交后跳转到成功页面如图3.1-3b所示,在控制台中我们看到输出的sql语句如图3.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaEE教案 16 JavaEE 教案
![提示](https://static.bdocx.com/images/bang_tan.gif)