目录

  • 1 任务一 Eclipse概述及安装
    • 1.1 认识Eclipse
    • 1.2 安装Eclipse
    • 1.3 安装Eclipse插件
    • 1.4 实训
  • 2 任务二 Eclipse的集成开发环境
    • 2.1 Eclipse界面
    • 2.2 常用视图
    • 2.3 透视图
    • 2.4 Java程序编写
    • 2.5 编译和运行
    • 2.6 Java代码调试
    • 2.7 实训
  • 3 任务三 Eclipse中搭建Web开发环境
    • 3.1 Eclipse中Web开发环境的分析
    • 3.2 应用服务器Tomcat的安装与配置
    • 3.3 MyEclipse插件的安装与配置
    • 3.4 数据库的安装与配置
    • 3.5 实训
  • 4 任务四 Eclipse中开发Web项目
    • 4.1 Eclipse中创建Web工程
    • 4.2 建立Servlet处理方式
    • 4.3 建立JavaBean处理方式
    • 4.4 数据库开发
    • 4.5 Eclipse中调试Web项目
    • 4.6 实训
  • 5 任务五 Eclipse开发实例——电子会议厅
    • 5.1 MVC设计模式
    • 5.2 系统分析
    • 5.3 数据库设计
    • 5.4 框架结构设计
    • 5.5 功能设计与实现
      • 5.5.1 动态加载事务类别
      • 5.5.2 添加事务(一)
      • 5.5.3 添加事务(二)
      • 5.5.4 班级事务的编辑与删除
      • 5.5.5 班级事务的查看
    • 5.6 实训
  • 6 任务六   Struts实现MVC设计
    • 6.1 实例介绍
    • 6.2 Struts框架结构
    • 6.3 Struts实例设计
    • 6.4 利用Struts实现“班级事务发布”模块
    • 6.5 实训
  • 7 任务七  Hibernate实现数据持久化
    • 7.1 持久化技术
    • 7.2 Eclipse中开发Hibernate
    • 7.3 Hibernate项目的设计
    • 7.4 利用Hibernate实现“班级事务浏览”模块
    • 7.5 项目的打包与发行
    • 7.6 实训
  • 8 任务八   JUnit单元测试
    • 8.1 关于JUnit
    • 8.2 编写和运行JUnit测试
    • 8.3 JUnit测试案例
    • 8.4 实训
  • 9 任务九  使用CVS进行版本控制
    • 9.1 版本管理与CVS
    • 9.2 CVS服务器的安装与配置
    • 9.3 CVS客户端的配置
    • 9.4 CVS项目管理
    • 9.5 标记版本
    • 9.6 实训
Hibernate项目的设计


Hibernate项目的设计


一、为项目做数据存储的常规处理

在Action部分调用DAO类的save()方法

u 确定DAO类中被调用的方法——save();

u 为save()方法准备数据,即Information类的对象







代码修改如下:




二、DAO模式实现方式

DAO模式的处理结构














分析处理结构

分析这个图,会有以下几个问题:

u 控制层与DAO层之间是通过业务层做中介的,那么业务层应该向控制器提供相应的服务方法来满足控制层的处理要求。

u DAO层中的DAO类集合了对相应数据库表的操作方法,那么业务层应该根据具体的业务要求调用适当的方法完成对数据库表的操作。

u DAO层操作的是Hibernate持久化对象,或者是对象中的某个属性,那么控制层应该准备好相应的数据,通过业务层传递给DAO层。

实施DAO模式设计

需要解决的问题:

① 业务层类汇集了针对某个数据库表的所有业务方法。

② 创建DAO类对象,调用DAO类中的方法。

   一个关键机制——创建DAO工厂

创建DAO工厂










创建DAO工厂时的两点说明

u 由于是static方法,在业务层可以通过DAOFactory.getXXX()的方式调用该方法得到DAO实例了。

u  getXXX()方法返回了一个接口:这是DAO模式的一种组织结构,即把DAO类提供的接口独立出来,在业务层只与DAO接口打交道:

遵循的原则是:尽量减少业务层和数据层的各自变化而导致的相互影响,即减少DAO实现变化时Service对DAO层的依赖程度。

三、DAO模式实现过程

编写DAO类接口,并让InformationDAO类实现这个接口









u  IInformationDAO接口继承了IBaseHibernateDAO接口,为的是能够拥有getSession()方法,可以在业务层关闭打开的Session对象。 

建立DAOFactory工厂类











编写业务层代码

编写业务层时,有以下几点说明:

u 将业务层类放在service包中,给这个类起名为InformationService.java;

uDAO工厂创建了DAO类的实例对象时,使用接口回调的机制;

u 需要通过dao调用getSession()方法获得Seesion对象,这样就可以关闭它了;

u 设计saveInfor()方法的返回类型为boolean型,在控制层可以通过返回值判断数据信息是否在数据库表中存储成功。
















修改控制层代码

在前3步设计的基础之上,在控制器部分编程实现与业务层的衔接,InputAction.java中需要修改的代码如下:


    Information information=new Information();


    information.setNum(Integer.valueOf(0));


    information.setBookType(bookType);


    information.setBookName(bookName);


    information.setBookAuthor(bookAuthor);


    InformationService.saveInfor(information);


    最后一行代码直接执行了业务层的saveInfor()方法,读者也可以根据其返回值将提示信息存储到内置对象里,在display.jsp页面中进行显示。 

发布项目进行测试

整理项目结构 

调整过程:将po.information包中的三个文件移动到hibernate包中。这样做的原因是:

被移动的三个文件具有“普遍性”。每创建一个映射文件,其中的DAO类均会引用两个文件:IBaseHibernateDAO.java和BaseHibernateDAO.java;同时DAOFactory.java文件又面向整个项目。   

*将三个文件放到hibernate包中不是必须的,也可以存到另外的包中。但是hibernate这个名称具有典型性,可能更符合文件的特性。*在做了项目结构的调整后,一定要根据快速修复的提示,将诸如import、package等错误修改过来,使得项目正确无误。