使用配置文件对DAO层封装具有分页功能的S2SH整合实例

阅读更多
Google 标签: 使用配置文件对DAO层封装具有分页功能的S2SH整合实例 李顺利 配置文件 DAO层封装 分页 SSH整合 实例 使用Annotation并对DAO层封装具有分页功能的S2SH整合实例

使用配置文件对DAO层封装具有分页功能的S2SH整合实例

 

李顺利

2010312

关键词

使用配置文件对DAO层封装具有分页功能的S2SH整合实例,李顺利,配置文件,DAO层封装,分页,SSH整合,实例

前言

前面写过使用Annotation并对DAO层封装具有分页功能的S2SH整合实例文章,收到了几位好友的一些意见和支持感到很开心,实际上整合实例网上很多,我本人也是从网上学习了很多,但是基于很多网上的实例并不一定能够运行自己才动手写了一个整合实例,即为了总结前人的经验也是为了自己以后的开发需要。

上篇博文主要是介绍Annotation的使用,也许现在的主流还是使用XML配置文件来整合各个框架。配置文件的使用虽然多但是简单,很明了。在这一篇博文中我就带你看看如何使用配置文件对DAO层封装具有分页功能的S2SH整合的。

请阅读本篇博文前请阅读

Struts+Spring+Hibernate整合注册登录——使用Myeclipse快速开发

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

其中涉及到与上面两篇博文相同的我就不再叙述了。

配置文件整合重点

       这次使用的是配置文件来整合,当然把上篇博文中使用Annotation注解去掉。主要是主要StrutsHibernate的配置文件都需要使用Spring进行相关配置。贴几个配置文件吧。

web.xmlstruts.xml的配置文件没有太多的变化,主要是Spring的配置文件的变化。

在对DAO层封装的时候涉及到一个问题,就是Spring如何对泛型的支持。在网上搜了很久,没有很好的解决,本想对DAO层注入的,既然注入出现空指针异常的错误,那么就应该换条思路。DAO层封装使用的是泛型加抽象类,既然Spring对泛型的支持不好,那么应该可以对DAO层抽象类的子类(提供泛型的实际类)进行注入。后来测试了一下,一切OK。还有DAO层封装的实现类中使用Annotation获得一些属性的都应该修改。例子:

Annotation:

public abstract class BaseDaoSupport extends HibernateDaoSupport implements IBaseDao

{

    protected Class entityClass = GenericsUtils.getSuperClassGenricType(this.getClass());

    protected String entityClassName = getEntityName(this.entityClass);

//其他就省略请看源代码

    /**

     * 获取实体的名称

     *

     * @param

     * @param clazz

     *            实体类

     * @return

     */

    protected static String getEntityName(Class clazz)

    {

        String entityname = clazz.getSimpleName();

        Entity entity = clazz.getAnnotation(Entity.class);

        if (entity.name() != null && !"".equals(entity.name()))

        {

            entityname = entity.name();

        }

        return entityname;

    }

}

配置文件

public abstract class BaseDaoSupport extends HibernateDaoSupport implements IBaseDao

{

    protected Class entityClass = GenericsUtils.getSuperClassGenricType(this.getClass());

    protected String entityClassName = getEntityName(this.entityClass);

//其他就省略请看源代码

    /**

     * 获取实体的名称

     *

     * @param

     * @param clazz

     *            实体类

     * @return

     */

    protected static String getEntityName(Class clazz)

    {

        String entityname = clazz.getSimpleName();

        return entityname;

    }

}

 

整合中主要是Spring配置文件的配置,贴下配置文件

applicationContext.xml

xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

    xsi:schemaLocation="

            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

 

   

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <property name="location">

            <value>classpath:dataSource.propertiesvalue>

        property>

    bean>

 

   

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

        <property name="driverClassName" value="${mysql.database.driver}">property>

        <property name="url" value="${mysql.database.url}">property>

        <property name="username" value="${mysql.database.user}">property>

        <property name="password" value="${mysql.database.password}">property>

        <property name="maxActive" value="${mysql.database.maxActive}">property>

        <property name="maxIdle" value="${mysql.database.maxIdle}">property>

        <property name="maxWait" value="${mysql.database.maxWait}">property>

    bean>

   

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="dataSource">

            <ref bean="dataSource" />

        property>

        <property name="hibernateProperties">

            <props>

                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialectprop>

            props>

        property>

        <property name="mappingResources">

            <list>

                <value>org/usc/beans/Teacher.hbm.xmlvalue>

                <value>org/usc/beans/Student.hbm.xmlvalue>

            list>

        property>

    bean>

   

   

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory">

            <ref bean="sessionFactory" />

        font-fa

  • Struts2下多文件的上传与下载
    2010-01-07 21:21 463
    Googel 标签: 多文件 ;上传 ;下载 ;随意文件 ;j ...
  • Javadoc转换chm帮助文档的四种方法总结
    2010-01-07 21:26 6341
    Googel 标签: Javadoc chm 转换 ;Java ...
  • 尚学堂Spring学习笔记
    2010-01-07 21:07 635
    Googel 标签: 李顺利 ;Java ;Java EE ; ...
  • Struts+Spring+Hibernate整合注册登录——使用Myeclipse快速开发
    2010-01-07 21:09 813
    Googel 标签: 李顺利 ;Java ;Java EE ; ...
  • 如何自定义Struts2表单验证后的错误信息显示格式/样式_把错误信息放在后面
    2010-01-07 21:15 1036
    Googel 标签: 李顺利 ;Java ;Java EE ; ...
  • 真实Java项目中的版本管理
    2010-01-07 21:17 477
    真实Java项目中的版本管理 ——在线版本控制之SubVers ...
  • Java开发Web程序中修改类文件和配置文件不重启服务器的方法
    2010-01-07 21:19 549
    Googel 标签: 李顺利 ;Java ;Java EE ; ...
  • 如何个性化地生成Javadoc文档
    2010-01-12 18:42 2412
    Googel 标签: 个性化地生成Javadoc文档 ;svn ...
  • 使用Annotation并对DAO层封装具有分页功能的S2SH整合实例
    2010-03-10 14:59 1089
    Google 标签: 使用Annotation并对DAO层封装 ...
  • Tomcat7.0小试,无法启动的解决办法
    2010-07-01 22:41 2247
    Tomcat7.0小试,无法启动的解决办法

你可能感兴趣的:(DAO,配置管理,Spring,MySQL,Bean)