JavaEE教案 (16)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务介绍(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

注:若已经编写好user表对应的实体类和实体映射文件,以及在hibernate全局配

置文件的节点中增加了

name="hbm2ddl.auto">create,那么可以通过hibernate框架在运行程序

的时候自动在数据库中生成user表结构。特别提醒,若user表已经存在,则会删

除旧的user表,重新创建新的,会导致旧表中记录全部丢失,所以一般建议该配

置仅使用一次,在使用之后可以将

name="hbm2ddl.auto">create中的create替换成update就可以避免这个

问题。

3.创建实体类与映射文件

在工程src目录下的com.zdsoft.domain包中新增与user表对应的实体类User,参考如

下:

public class User {

int id;

String name;

String userName;

String password;

String sex;

String province;

int age;

Date birth;

String mobile;

String hobbies;

String email;

//以下省略每个成员变量的get/set方法

}

在com.zdsoft.domain包下新增User.hbm.xml映射文件,具体步骤如下:

首先在User.hbm.xml映射文件中加入文件头,代码如下(一般是固定的,无需改动):

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"/hibernate-mapping-3.0.dtd">

其次在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框架所使用的成员变量,参考如下:Configuration cfg = null;

SessionFactory sessionFactory = null;

Session session = null;

Transaction tx = null;

其次定义RegisterDao类的构造方法,参考如下:

public RegisterDao(){

cfg = new Configuration();

cfg.configure();

sessionFactory = cfg.buildSessionFactory();

}

再定义保存User对象的save方法,并实现该方法:

public boolean save(User user) {

boolean ret = false;

try {

session = sessionFactory.openSession();

tx = session.beginTransaction();

session.save(user);

mit();

ret = true;

} catch (HibernateException e) {

if (tx != null) {

tx.rollback();

}

e.printStackTrace();

ret = false;

}

if (session != null) {

session.close();

}

return ret;

相关文档
最新文档