使用Annotation并对DAO层封装具有分页功能的S2SH整合实例

来自:http://www.blogjava.net/lishunli/archive/2010/03/11/315055.html

使用 Annotation 并对 DAO 层封装具有分页功能的 S2SH 整合实例

 

李顺利

2010 1 24

目录

关键词 ... 2

前言 ... 2

开发环境 ... 2

开发步骤 ... 2

环境的集成 ... 2

Struts2.1.8所需 Jar ... 2

Hibernate3.3所需 Jar ... 3

Spring3.0所需 Jar ... 3

基于 Annotation Struts配置 ... 4

基于 Annotation Hibernate配置 ... 5

基于 Annotation Spring配置 ... 10

DAO层封装 ... 12

分页 ... 19

业务逻辑 ... 21

测试 ... 22

实例结果 ... 23

参考网站 ... 23

源码下载 ... 23

学习探讨 ... 23

 

 


关键词

使用 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

       clip_image002

其中下文会对 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

       clip_image004

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

 

clip_image005

还有一些其他的辅助 Jar 包:

mysql-connector-java-5.1.7-bin.jar aspectjweaver.jar commons-dbcp-1.2.2.jar commons-pool.jar junit-4.6.jar

clip_image006

上面的 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 框架的整合了。


基于AnnotationStruts 配置

使用 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.iteye.com/blog/358744

http://yzl45.iteye.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 ;

    }

}

 

基于AnnotationHibernate 配置

Hibernate Annotation 方式很类似于 EJB 中的 JPA ,主要的 Annotation 注解是: @Entity @Table @Id @GeneratedValue @Column 。具体的注解请上网查看一下。这里介绍一种简便的方法生成基于 Annotation Hibernate 持久类。

1.  使用 Myeclipse 添加对 Hibernate 的支持

右键项目,选择 MyEclipse 后选择 Add hibernate Capabilities (一般都会先添加对 Spring 的支持后在添加对 Hibernate 的支持,这样会使用 Spring 管理 Hibernate

clip_image008

clip_image010

这个时候就不需要选择 Jar 包了, Hibernate Jar 已经加入进来, Next ,选择 Spring 的配置文件,这样可以使用 Spring 进行管理 Hibernate (这也是为什么要先添加对 Spirng 的支持) ,Next

clip_image012

选择已经存在的 Spring 配置文件

clip_image014

后选择已经创建好的 DateSource

clip_image016

clip_image018

即可,详情请阅读 Struts+Spring+Hibernate整合注册登录 —— 使用 Myeclipse 快速开发 ,里面有详细的介绍。

2.  进入生成 DB Brower 视图(可以通过 windows->show View 找到)

clip_image020

找到后连接 MySql 数据库后,即可生成 Hibernate 的持久类 clip_image022

clip_image024

生成的实例代码

@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()

    {

    }

 

    /** minimal constructor */

    public Student(String name, String sex)

    {

        this . name = name;

        this . sex = sex;

    }

 

    /** full constructor */

    public <span style

分享到:
评论
wangdj
  • 浏览: 11936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

你可能感兴趣的:(DAO,spring,Hibernate,struts,MyEclipse)