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

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

 

李顺利

2010124

目录

关键词... 2

前言... 2

开发环境... 2

开发步骤... 2

环境的集成... 2

Struts2.1.8所需Jar... 2

Hibernate3.3所需Jar... 3

Spring3.0所需Jar... 3

基于AnnotationStruts配置... 4

基于AnnotationHibernate配置... 5

基于AnnotationSpring配置... 10

DAO层封装... 12

分页... 19

业务逻辑... 21

测试... 22

实例结果... 23

参考网站... 23

源码下载... 23

学习探讨... 23

 

 


关键词

使用Annotation并对DAO层封装具有分页功能的S2SH整合实例,李顺利,AnnotationDAO层封装,分页,SSH整合,实例,黎活明,传智播客,巴巴运动网

前言

       现在Annotation越来越流行,最近一段时间也学了一些,EJB3.0HibernateSpring等都很好地支持Annotation,而且熟悉了Annotation的话整个项目开发时间会缩短,代码封装比较好,但是封装带来的就是代码阅读就比较困难了。Annotation也是一门知识,可以选择使用Annotation还是其他。个人认为由Sun官方支持的EJB规范会越来越流行,此时如果使用基于AnnotationSSH框架很容易转移到Struts+EJB+Spring的项目中,而且使用Annotation,很容易实现0配置,像在这个实例中就一个配置,这样避免了配置文件多而不知所措的情况。

开发环境

Jdk1.5+Struts2.1.8+Hibernate3.3+Spring3.0+MySql5.0+MyEclipse8.0

开发步骤

环境的集成

到官网下载上面开发环境中的框架和工具,安装完成后。在Myeclipse中新建名为SSHWithAnnotationDemoweb project,添加SSH整合所需要的包,这里详细说一下需要哪些包?

Struts2.1.8所需Jar

xwork-core-2.1.6.jaraopalliance-1.0.jarcommons-logging-1.0.4.jarcommons-fileupload-1.2.1.jarcommons-io-1.3.2.jarfreemarker-2.3.15.jarognl-2.7.3.jarstruts2-convention-plugin-2.1.8.1.jarstruts2-core-2.1.8.1.jarstruts2-spring-plugin-2.1.8.jar

       clip_image002

其中下文会对struts2-convention-plugin插件进行详细讲解。

Hibernate3.3所需Jar

slf4j-log4j12.jarantlr-2.7.6.jarcommons-collections-3.1.jardom4j-1.6.1.jarejb3-persistence.jarhibernate3.jarhibernate-annotations.jarhibernate-commons-annotations.jarjavassist-3.9.0.GA.jarjta-1.1.jarlog4j.jarslf4j-api-1.5.8.jar

       clip_image004

Spring3.0所需Jar

org.springframework.web-3.0.0.RC1.jarorg.springframework.aop-3.0.0.RC1.jarorg.springframework.asm-3.0.0.RC1.jarorg.springframework.beans-3.0.0.RC1.jar

org.springframework.context-3.0.0.RC1.jarorg.springframework.core-3.0.0.RC1.jarorg.springframework.expression-3.0.0.RC1.jarorg.springframework.jdbc-3.0.0.RC1.jarorg.springframework.orm-3.0.0.RC1.jarorg.springframework.test-3.0.0.RC1.jarorg.springframework.transaction-3.0.0.RC1.jar

 

clip_image005

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

mysql-connector-java-5.1.7-bin.jaraspectjweaver.jarcommons-dbcp-1.2.2.jarcommons-pool.jarjunit-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配置

使用AnnotationStruts配置可以实现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;

    }

}

 

基于AnnotationHibernate配置

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

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

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

clip_image008

clip_image010

这个时候就不需要选择Jar包了,HibernateJar已经加入进来,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()

    {

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值