Struts Spring Hibernate整合笔记

来源:百度文库 编辑:神马文学网 时间:2024/04/28 04:39:11
Struts+Spring+Hibernate整合笔记2006年10月30日 星期一 10:12 Terry原创文章,转载请说明作者及出处


使用平台:Eclipse3.2、MyEclipse5.01GA
Struts、Spring、Hibernate三个框架在MyEclipse下添加顺序为:
首先新建一个Web Project,

添加Add Struts Capabilities…,设置好包路径后继续;

选择MyEclipse菜单下的Add Spring Capabilities…选择所有的标签库,JAR Library Installation位置选择“Copy”项,下一步,设置Spring Bean配置文件位置,一般就默认在SRC目录,点击完成,就添加了Spring,继续;

切换到MyEclipse Database Explorer(数据库浏览器视图),添加一个数据连接,测试连接成功后继续,这一步是为了给下面添加Hibernate框架准备的,因为它在建立过程中需要指定一个有效连接数据库的连接;

选择MyEclipse菜单下的Add Hibernate Capabilities…选择反有的标签库,包括Spring的,JAR Library Installation位置还是选择“Copy”项,下一步;因为之前添加了Spring框架,所以这里就会自动识别到,并询问你使用Hibernate的配置文件“hibernate.cfg.xml”还是使用Spring的配置文件“applicationContext.xml”,这里选择Spring来统一配置,下一步;此处是定义Spring配置文件是需要新建还是使用已存在的Spring配置文件,这里选择Existing Spring configuration file,即使用已存在的Spring配置文件“src/applicationContext.xml”,下方需要指定Hibernate的SessionFactory在Spring配置文件中的Bean ID,使用“sessionFactory”即可,下一步;在DB Profile的下拉列表中选择刚刚建立的连接,并在Bean ID处设置这个DataSource在Spring配置文件中的Bean ID名,这里使用“DataSource”,下一步;接下来的Define SessionFactory properties界面是配置Hibernate的SessionFactory工具类存放位置,设置好包路径后,下一步;点击Finish,就完成了对Struts、Spring、Hibernate三个框架的设置。

这里还需要配置Log4J(日志工具),只需将以下两个文件复制到SRC目录下即可
commons-loggingproperties.properties
log4j.properties
至于这两文件里的具体配置就不再多说。

接下来,先完成JSP页面、ActionForm、及Action的添加,添加过程就不再多说。再就是为数据表添加持久化类,过程是在MyEclipse DataBase Explorer中打开连接,找到所需的表后,鼠标右键点击表名,选择“Hibernate Reverse Engineering…”,设置了包路径后,依次钩选“Hibernate Mapping File”、“Java Data Object”(取消钩选“Create abstract class”)以及“Java Data Access Object(DAO)”,在“Java Data Access Object(DAO)”下会自动钩选“Generate precise findby methods”,以及选择“Spring DAO”选项,使用“Spring DAO”后,在DAO类里转而使用了HibernateTemplate对象来操作数据库,据说可以免去事务管理,具体情况,明天再继续研究。生成完持久化类后,需要在Struts-config.xml文件里添加以下字段:
  "org.springframework.web.struts.ContextLoaderPlugIn">
          "contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>

Value值就指定了Spring配置文件applicationContext.xml文件具体包位置。

接着在Action中需要做以下操作:
导入import org.springframework.web.struts.ActionSupport;包
原先Action是继承Action类的,例:
public class EmployeeListAction extends Action
这里将它改为继承ActionSupport类,例:
public class EmployeeListAction extends ActionSupport

生成一个数据表的DAO对象,格式如下:
EmployeeinfoDAO empDao=EmployeeinfoDAO.getFromApplicationContext(this.getWebApplicationContext());       
List empList=empDao.getHibernateTemplate().loadAll(Employeeinfo.class);   


如此就完成了读取一个数据表里所有字段的操作,是不是很简单呢?