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:
搞定收工。。。
- Struts2+Hibernate3+Spring2的简单小例子
- 最简单的 Struts2 Spring2 Hibernate3 整合 实例
- struts2+spring2.5+hibernate3集成的简单实例
- spring2+hibernate3+struts2 真的让一切都变得简单
- struts2+spring2+hibernate3 Annotation的整合
- struts2-spring2-hibernate3整合的一个问题
- Struts2+Spring2+Hibernate3起步
- Struts2+Spring2+Hibernate3整合
- 整合Hibernate3.3和struts2.3.8的小例子
- Struts2.0.11+ Hibernate3.6.0+Spring2.5.6的简单使用与配置
- 基于注解的Struts2+Spring2.5+Hibernate3.3的Spring 配置文件,struts配置文件,web.xml配置文件的例子
- webwork2 + hibernate3.0 + spring2例子
- Struts2+Hibernate3+Spring2中文问题
- 关于整合Struts2+Spring2+ Hibernate3
- Struts2+Spring2+Hibernate3 整合开发
- Spring2.5+Hibernate3.3+Struts2
- struts2 +hibernate3.2+spring2.0
- struts2+spring2+hibernate3整合SiteMesh
- cin<<, cin.get,cin.getline等函数深入分析
- 第二块FPGA开发板,研发调试笔记
- 双项链表的有关操作
- 选定方向朝前走
- 关于shell中上传下载功能的实现
- Struts2+Hibernate3+Spring2的简单小例子
- 卫哲的3+1思考法:测量项目“靠谱程度”
- [转]Oracle10gR2如何在RHEL 5下开启异步IO
- 《设计模式》读书笔记小结一下
- 我的blog
- 算法-字符串匹配(String Matching)-(1)-朴素匹配和Rabin-Karp算法
- 统计学 学习笔记 (三)—— 掌握数据的整体状态 数据的变异性
- 京东商城 280以下显卡参数对比。
- LS代码实现点复选框即时弹出子表单(R6以上版本)