JavaEE教案 16.docx

上传人:b****2 文档编号:2247509 上传时间:2022-10-28 格式:DOCX 页数:21 大小:144.79KB
下载 相关 举报
JavaEE教案 16.docx_第1页
第1页 / 共21页
JavaEE教案 16.docx_第2页
第2页 / 共21页
JavaEE教案 16.docx_第3页
第3页 / 共21页
JavaEE教案 16.docx_第4页
第4页 / 共21页
JavaEE教案 16.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

JavaEE教案 16.docx

《JavaEE教案 16.docx》由会员分享,可在线阅读,更多相关《JavaEE教案 16.docx(21页珍藏版)》请在冰豆网上搜索。

JavaEE教案 16.docx

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.

email

电子邮箱

varchar(50)

11.

hobbies

爱好

varchar(255)

注:

若已经编写好user表对应的实体类和实体映射文件,以及在hibernate全局配置文件的节点中增加了create,那么可以通过hibernate框架在运行程序的时候自动在数据库中生成user表结构。

特别提醒,若user表已经存在,则会删除旧的user表,重新创建新的,会导致旧表中记录全部丢失,所以一般建议该配置仅使用一次,在使用之后可以将create中的create替换成update就可以避免这个问题。

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

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

当前位置:首页 > 人文社科 > 法律资料

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

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