Struts2+Hibernate3+Spring2的简单小例子

来源:互联网 发布:linux ntpdate 端口 编辑:程序博客网 时间:2024/05/17 05:13

    今天这个例子主要是为了学习Hibernate,之前已经对Struts有了了解,因此加上Struts的控制,另外稍微加上了一点点Spring&Struts的使用。

    使用工具:eclipse for J2EE,Tomcat6.0,JDK1.6,SQLServer2000。

    此例子重点在于使用Hibernate的对数据库表的增删改查功能,以及分页的实现。

    使用数据库:Pubs,复制其中的表titles为newtitles以供使用,复制表的代码为:

    use pubs

    select * into newtitles from titles;

    alter table newtitles add primary key(title_id);

 

    首先建立工程取名SSH2_Example(当然工程名任意起),然后环境配置,将所有要用到的jar包复制进工程lib里,关于jar包的引用就不多说了,这是个大问题,也是个应该没啥问题的问题,so...

 

    工程下新建包,com.hp.db,这个包里我们放HibernateSessionFactory这个类,也是Hibernate的关键类,其功能就是提供数据库的连接,是个Session,相当于JDBC里的Connection,还可以提供事务的共通代码,代码如下:

    可以看到,HibernateSessionFactory类还需要一个Hibernate的配置文件,来共通完成对数据库的连接,配置文件名:hibernate.cfg.xml,放在src目录下,内容如下:

   

    hibernate.cfg.xml中我们使用了连接池的技术,也需要个配置文件,文件名:proxool.xml,也同样放到src目录下,代码如下:

    在hibernate.cfg.xml中我们看到有个Java类到数据库表的映射文件,<mapping resource="com/hp/voo/Newtitles.hbm.xml" />,这个是配置数据库里的表对应程序中的POJO类的配置文件,新建个包,com.hp.voo,用来放需要用到的POJO类,首先就是数据表的映射类,类名:Newtitles,代码如下:

    Newtitles.hbm.xml也放在com.hp.voo包中,代码如下:

    同时,com.hp.voo包中,我们需要放入一个分页显示的POJO类,类中属性为分页所需的各种属性,譬如当前页码,总记录数,当前页的数据等等,类名:PageBean,代码如下:

    然后新建包,com.hp.base,这个包中将存放所有增删改查以及分页的基础方法,通过用泛型的方式,使其成为任何业务Bean都可以使用的通用增删改查的基础类,为了实现面向接口编程,我们这个包里放入一个接口,和一个实现类,接口名:IGenericDao,代码如下:

    实现类类名:GenericHibernateDao,代码如下:

    下面再建个包,com.hp.dao,此包为业务类包,即我们要做的所有业务,同样用接口和实现类的方式来写,同时要继承刚才com.hp.base包中的基础接口和类,dao包下接口名为ITitlesDao,代码如下:

    实现类的类名为TitlesDaoImp,代码如下:

    接下来新建包,com.hp.actions,我们在这里放入我们的业务action,类名CrudAction,代码如下:

    继续新建个包,com.hp.filters,此包下放入所有的过滤器,我们主要是为了让页面提交时事务能自动提交然后关闭Session,所以使用它,过滤器名:SessionFilter2,代码如下:

    src下的包都建完了,最后一项需要写struts.xml文件,目录也是src下,代码如下:

    注意,里面多了一句使用Spring实例Action的命令,而且class="crudBySpring"一句如果不用Spring的话,需要写的是Action的路径,现在使用了Spring的话,只需要定义个名字跟Spring里的配置文件里的某个名字相同,会自动去找到Spring里同名的属性里的Action的路径,我们看到Spring的作用其实就是截了一下Action的创建的过程。

    下面是spring的配置文件,文件名:applicationContext.xml,目录在WEB-INF下,代码如下:

    最后就差页面和web.xml文件了,代码如下:

    index.jsp:

   

    TitlesList.jsp:

    AddTitles.jsp:

    web.xml:

搞定收工。。。

   

   

原创粉丝点击