使用Annotation并对DAO层封装具有分页功能的S2SH整合实例
李顺利
2010年1月24日
目录
关键词
前言
开发环境
开发步骤
环境的集成
Struts2.1.8所需Jar包
Hibernate3.3所需Jar包
Spring3.0所需Jar包
基于Annotation的Struts配置
基于Annotation的Hibernate配置
基于Annotation的Spring配置
DAO层封装
分页
业务逻辑
测试
实例结果
参考网站
源码下载
学习探讨
关键词
使用Annotation并对DAO层封装具有分页功能的S2SH整合实例,李顺利,Annotation,DAO层封装,分页,SSH整合,实例,黎活明,传智播客,巴巴运动网
前言
现在Annotation越来越流行,最近一段时间也学了一些,EJB3.0、Hibernate、Spring等都很好地支持Annotation,而且熟悉了Annotation的话整个项目开发时间会缩短,代码封装比较好,但是封装带来的就是代码阅读就比较困难了。Annotation也是一门知识,可以选择使用Annotation还是其他。个人认为由Sun官方支持的EJB规范会越来越流行,此时如果使用基于Annotation的SSH框架很容易转移到Struts+EJB+Spring的项目中,而且使用Annotation,很容易实现0配置,像在这个实例中就一个配置,这样避免了配置文件多而不知所措的情况。
开发环境
Jdk1.5+Struts2.1.8+Hibernate3.3+Spring3.0+MySql5.0+MyEclipse8.0
开发步骤
环境的集成
到官网下载上面开发环境中的框架和工具,安装完成后。在Myeclipse中新建名为SSHWithAnnotationDemo的web project,添加SSH整合所需要的包,这里详细说一下需要哪些包?
Struts2.1.8所需Jar包
xwork-core-2.1.6.jar、aopalliance-1.0.jar、commons-logging-1.0.4.jar、commons-fileupload-1.2.1.jarcommons-io-1.3.2.jar、freemarker-2.3.15.jar、ognl-2.7.3.jar、struts2-convention-plugin-2.1.8.1.jar、struts2-core-2.1.8.1.jar、struts2-spring-plugin-2.1.8.jar
其中下文会对struts2-convention-plugin插件进行详细讲解。
Hibernate3.3所需Jar包
slf4j-log4j12.jar、antlr-2.7.6.jar、commons-collections-3.1.jar、dom4j-1.6.1.jar、ejb3-persistence.jar、hibernate3.jar、hibernate-annotations.jar、hibernate-commons-annotations.jar、javassist-3.9.0.GA.jar、jta-1.1.jarlog4j.jar、slf4j-api-1.5.8.jar
Spring3.0所需Jar包
org.springframework.web-3.0.0.RC1.jar、org.springframework.aop-3.0.0.RC1.jar、org.springframework.asm-3.0.0.RC1.jarorg.springframework.beans-3.0.0.RC1.jar、
org.springframework.context-3.0.0.RC1.jar、org.springframework.core-3.0.0.RC1.jar、org.springframework.expression-3.0.0.RC1.jar、org.springframework.jdbc-3.0.0.RC1.jar、org.springframework.orm-3.0.0.RC1.jar、org.springframework.test-3.0.0.RC1.jar、org.springframework.transaction-3.0.0.RC1.jar
还有一些其他的辅助Jar包:
mysql-connector-java-5.1.7-bin.jar、aspectjweaver.jar、commons-dbcp-1.2.2.jar、commons-pool.jar、junit-4.6.jar
上面的Jar包都可以在相应的框架Jar文件夹里面找到,具体的Jar包作用如果不清楚的话请Google一下。为了方便,顺利提供所有这些Jar包下载。
顺利提供下载:
文 件 名:Struts2.1.8+Hibernate3.3+Spring3.0整合所需Jar包.rar
下载地址:http://usc.googlecode.com/files/Struts2.1.8%2BHibernate3.3%2BSpring3.0%E6%95%B4%E5%90%88%E6%89%80%E9%9C%80Jar%E5%8C%85.rar
加入Jar包后,就可以进行SSH框架的整合了。
基于Annotation的Struts配置
使用Annotation对Struts配置可以实现0配置,这个时候就不需要对Struts.xml进行任何的配置,0配置的实现主要是使用struts2-convention-plugin插件。大致介绍下convention-plugin插件。
1. 默认所有的结果页面都存储在WEB-INF/content下
2. 命名规则:去掉类名的Action部分。然后将将每个分部的首字母转为小写,用’-’分割。
a) 举例:TestAction,那么访问的时候就是test.action;
b) 举例:StudentListAction,那么访问的时候就是student-list.action。
3. 常用的Annotation
a) @Controller:申明Struts为控制层;
b) @Scope("prototype"):申明Struts的范围为原型;
c) @Results:全局的结果集,可以配置execute执行后跳转的页面。
像@Results({ @Result(name = "success", location = "teacher/teacherList.jsp"), @Result(name = "input", location = "/index.jsp") })
通过convention-plugin插件就可以很简单的配置Struts的配置, 如果想更好地了解convention-plugin插件请查看下面的网站或者自己Google一下。
http://cwiki.apache.org/WW/convention-plugin.html
http://javeye.javaeye.com/blog/358744
http://yzl45.javaeye.com/blog/346632
代码举例:
import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionSupport; /** * 测试convention-plugin插件 */
@Controller @Scope("prototype") @Results( { @Result(name = "success", location = "test/test.jsp"), @Result(name = "input", location = "/index.jsp") }) //成功的页面会跳到WebRoot/WEB-INF/content/test/test.jsp,失败会跳到WebRoot/index.jsp public class TestAction extends ActionSupport { /* * @see com.opensymphony.xwork2.ActionSupport#execute() */ @Override public String execute() throws Exception { System.out.println("测试convention-plugin插件"); return INPUT; } }
|
基于Annotation的Hibernate配置
Hibernate的Annotation方式很类似于EJB中的JPA,主要的Annotation注解是:@Entity、@Table、@Id、@GeneratedValue、@Column 。具体的注解请上网查看一下。这里介绍一种简便的方法生成基于Annotation的Hibernate持久类。
1. 使用Myeclipse添加对Hibernate的支持
右键项目,选择MyEclipse后选择Add hibernate Capabilities(一般都会先添加对Spring的支持后在添加对Hibernate的支持,这样会使用Spring管理Hibernate)
这个时候就不需要选择Jar包了,Hibernate的Jar已经加入进来,Next,选择Spring的配置文件,这样可以使用Spring进行管理Hibernate(这也是为什么要先添加对Spirng的支持),Next
选择已经存在的Spring配置文件
后选择已经创建好的DateSource。
即可,详情请阅读Struts+Spring+Hibernate整合注册登录——使用Myeclipse快速开发,里面有详细的介绍。
2. 进入生成DB Brower视图(可以通过windows->show View找到)
找到后连接MySql数据库后,即可生成Hibernate的持久类
生成的实例代码
@Entity @Table(name = "student", catalog = "test") public class Student implements java.io.Serializable {
// Fields
private Integer no; private String name; private String sex; private Integer age; private Double score; private Date eduTime;
// Constructors
/** default constructor */ public Student() { }
; color: black; font-size: 8pt; |