`
jiangzhenwei6
  • 浏览: 34497 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts spring ibatis的集成

    博客分类:
  • ssh
阅读更多
Struts spring ibatis的集成(连载一)---转
关键词:
      ibatis

      ibatis集成spring

      dwr集成spring

内容:
       当前软件开发中ssh框架集成司空常见,相信大家都会做。ibatis是一种非常优秀的持久层框架,那么ibatis如何与spring集成在一起呢。注意我没有明确说ibatis和struts集成在一起,原因在于ssh中struts与spring的集成,在ss+ibatis中没有区别。


1.         Struts和spring的集成
很多时候,我使用dwr(ajax框架)。所以我使用监听器的方式集成struts与spring。以利于dwr与spring集成。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
       <servlet>
              <servlet-name>action</servlet-name>
              <servlet-class>
                     org.apache.struts.action.ActionServlet
              </servlet-class>
              ……..
       </servlet>
       <servlet-mapping>
              <servlet-name>action</servlet-name>
              <url-pattern>*.do</url-pattern>
       </servlet-mapping>
 
       <!-- dwr框架 -->
       <servlet>
              <servlet-name>dwr-invoker</servlet-name>
              <servlet-class>
                     org.directwebremoting.servlet.DwrServlet
              </servlet-class>
              <init-param>
                     <param-name>debug</param-name>
                     <param-value>true</param-value>
              </init-param>
       </servlet>
       <servlet-mapping>
              <servlet-name>dwr-invoker</servlet-name>
              <url-pattern>/dwr/*</url-pattern>
       </servlet-mapping>
 
       <!-- spring集成struts -->
       <context-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>
              /WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml,/WEB-INF/bo-dao.xml
              </param-value>
       </context-param>
       <listener>
              <listener-class>
                     org.springframework.web.context.ContextLoaderListener
              </listener-class>
       </listener>
       ……..
</web-app>
 

dwr.xml的使用
dwr框架可以直接使用spring容器里的BO bean
本例中findAll( )方法返回客户的list

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
       <allow>
              <create creator="spring" javascript="JCustomer">
                     <param name="beanName" value="customerBO" />
                     <include method="findAll"/>
              </create>
              <convert converter="bean" match="com.esale.to.CustomerTO"></convert>
       </allow>
</dwr>
 

2.         ibatis与hibernate的横向比较之我见
两者都是优秀的持久层框架。Hibernate是对象关系映射产品(orm),全自动的。ibatis的作者认为ibatis是一种半自动的数据映射器框架(data mapper)。

       使用hibernate的人,不需要了解sql,除非你基于性能的考虑,例如hibernate的分页性能就比较差,原因在于hibernate要查询出所有的记录而不是当前页的记录。

       使用ibatis的人需要熟练sql,项目中大量的查询让sql高手使用ibatis的时候如鱼得水,极致性能。


      核心区别我的理解:
       select * from users where username=? and password=?;

这是一条sql语句,ibatis把这条sql语句映射为函数,username和password的实际值作为函数参数,返回值做为一个实体对象或者实体对象的列表,就是查询结果集的封装。

       hibernate不关心sql语句,sql由框架来生成。它关心表和类的对应关系,称之为映射。

比如tbl_user表对应UserTO类(传输值类),表中的列一一对应实体类的属性。类和表的映射关系一旦建立。类等于表,表中的一条记录就是类的一个实例对象。只不过这个对象可能处于transient、persistant或者detached状态。

       开发中hibernate对增加删除和修改有利,对复杂查询不利。

       ibatis的crud操作都比较好,对高性能和高难度的查询更加有利,唯一的缺点在于半自动化。

       

3.         ibatis与spring的集成

3.1  SqlMapConfig.xml相当于hibernate.cfg.xml文件,数据源由spring管理,看后面

<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
       <settings useStatementNamespaces="true" />
       <sqlMap resource="com/eHome/dao/impl/User.xml" />
       <sqlMap resource="com/eHome/dao/impl/Article.xml" />
</sqlMapConfig>
 




3.2  User.xml与UserDAOImpl.java类,相当于hibernate的实体类与实体类的映射文件

<?xml version="1.0" encoding="UTF-8" ?>
 
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="user">
       <typeAlias alias="userTO" type="com.eHome.entity.UserTO" />
       <select id="selectByUserName" resultClass="userTO"
              parameterClass="string">
              select * from users where userName=#userName#
       </select>
 
       <insert id="insert" parameterClass="userTO">
              insert into users values(#userName#,#password#,#realName#,#sex#)
              <selectKey resultClass="int" keyProperty="userId">
                     SELECT @@IDENTITY AS userId
              </selectKey>
       </insert>
</sqlMap>
 


public class UserDAOImpl extends SqlMapClientDaoSupport implements UserDAO {
       /**
        * 根据用户名查找一名用户
        */
       public UserTO findByUserName(String userName) {
              UserTO user = (UserTO) this.getSqlMapClientTemplate().queryForObject(
                            "user.selectByUserName", userName);
              return user;
       }
       /**
        * 保存一个用户
        */
       public Integer save(UserTO user) {
              return (Integer) this.getSqlMapClientTemplate().insert("user.insert", user);
       }
}


注意红色部分配置文件中sql语句与dao方法的对应关系。


3.3 最后spring集成ibatis

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
       <!-- 数据源 -->
       <bean id="ds" class="org.apache.commons.dbcp.BasicDataSource">
              <property name="driverClassName"
                     value="net.sourceforge.jtds.jdbc.Driver">
              </property>
              <property name="url"
                     value="jdbc:jtds:sqlserver://localhost:1433/ownHome">
              </property>
              <property name="username" value="sa"></property>
              <property name="password" value="ok"></property>
       </bean>
       <!-- 相当于hibernate会话工厂的sqlMapClient -->
       <bean id="sqlMapClient"
              class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
              <property name="configLocation">
                     <value>classpath:com/eHome/dao/SqlMapConfig.xml</value>
              </property>
              <property name="dataSource">
                     <ref bean="ds" />
              </property>
       </bean>
       <!-- hibernate中dao类依赖会话工厂,此处 -->
       <bean id="userDAO" class="com.eHome.dao.impl.UserDAOImpl"
              abstract="false" lazy-init="default" autowire="default"
              dependency-check="default">
              <property name="sqlMapClient">
                     <ref bean="sqlMapClient" />
              </property>
       </bean>
       <!—bo对dao的依赖 -->
       <bean id="userBO" class="com.eHome.service.UserBO" abstract="false"
              lazy-init="default" autowire="default" dependency-check="default">
              <property name="userDAO">
                     <ref bean="userDAO" />
              </property>
       </bean>
……
</beans>
 

引用:http://www.cnblogs.com/TitanNJ/archive/2009/05/26/1489329.html
分享到:
评论

相关推荐

    Spring struts ibatis Mysql 集成

    在IT行业中,集成Spring、Struts和iBatis与MySQL是构建企业级Java Web应用程序的常见选择。这个项目集成了Spring 2.5.5、Struts 2.1.6、iBatis 2.3.4以及MySQL 5.1数据库,使用IntelliJ IDEA 9作为开发环境。下面将...

    struts1.2 spring2 ibatis 集成项目实战源码

    Struts1.2、Spring2和iBatis是经典的Java Web开发框架,它们的集成可以构建出高效、灵活的企业级应用程序。在这个项目实战源码中,我们可以深入学习这三大框架如何协同工作,以及如何在实际开发中应用它们。 首先,...

    struts+spring+ibatis框架集合教程

    4. 集成应用:Struts、Spring和iBatis的集成,通常称为SSi框架,能够充分利用各自的优点。Spring作为核心,可以管理Struts的Action和iBatis的数据访问对象,实现事务控制。Struts处理HTTP请求,转发到Spring管理的...

    spring + struts + ibatis

    Spring、Struts和iBatis是Java开发中的经典组合,常被称为"SSI"架构,用于构建企业级Web应用程序。这个组合充分利用了各自框架的优势,提供了一个强大的、灵活的和可扩展的解决方案。 Spring框架是核心,它是一个...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...

    spring+struts+ibatis

    标题中的"spring+struts+ibatis"是指一种经典的Java Web开发架构,也被称为SSM框架。这个架构结合了Spring框架、Struts2框架和iBatis(现在称为MyBatis)来构建高效且可维护的Web应用。下面将详细阐述这三个框架以及...

    spring.struts,ibatis集成包

    标题中的"spring.struts,ibatis集成包"是指将Spring、Struts和iBATIS这三种技术框架整合在一起的软件包。这种集成旨在提供一个高效、灵活且可扩展的Web应用程序开发环境。Spring作为核心框架,负责管理应用的业务...

    struts spring ibatis extjs 实例

    此外,Spring与Hibernate、iBatis等数据访问框架集成,简化了数据库操作。 3. **iBatis**:iBatis是一个SQL映射框架,它将SQL语句与Java代码分离,提高了代码的可读性和可维护性。开发者可以编写SQL语句并直接在XML...

    struts2 spring ibatis整合的最少最全jar包

    Struts2、Spring和iBatis是Java Web开发中非常重要的三个框架,它们分别负责MVC模式中的Action层、业务逻辑层以及数据访问层。这三个框架的整合可以提供一个高效且灵活的开发环境,帮助开发者构建出结构清晰、易于...

    Struts spring ibatis json整合实例(附完整jar包)

    Struts2、Spring和Ibatis是...总之,这个实例展示了如何在Java Web开发中集成Struts2、Spring、Ibatis和JSON,实现前后端数据交互。通过理解这些技术的工作原理和相互配合,开发者可以构建出高效、可维护的Web应用。

    struts spring ibatis mysql 整合 实例 数据库 源码

    Struts、Spring、iBatis和MySQL是Java Web开发中常用的四大框架,它们共同构建了一个高效、灵活且可扩展的应用程序架构。这个整合实例提供了基于这些技术的源码,可以帮助开发者深入理解它们如何协同工作。 Struts...

    Spring_Struts_Ibatis_Mysql Demo

    通过学习和实践Spring_Struts_Ibatis_Mysql Demo,开发者可以深入了解这些技术的集成和协同工作方式,为构建自己的Java Web应用打下坚实基础。同时,这也是一个很好的起点,可以帮助初学者逐步掌握Web开发中的各种...

    Spring-Struts-IBatis-AOP-Transaction

    在 "17-Prj-Spring-Struts-IBatis-AOP-Transaction" 这个项目中,这四个框架被集成在一起,形成一个强大的 web 应用开发解决方案。Spring 作为整个系统的基石,负责依赖注入和事务管理;Struts 2 处理 HTTP 请求,...

    Struts2 Spring Ibatis mysql 项目整合

    通过这个项目,开发者可以深入理解Struts2、Spring、iBatis以及MySQL的集成方式,了解它们如何协同工作以完成Web应用的基本功能。在实际开发中,这种架构提供了良好的分层和模块化,有利于项目的扩展和维护。

    struts2+spring+ibatis 项目 入门使用

    Struts2、Spring和iBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的企业级应用程序。本项目旨在为初学者提供一个基础的入门指南,帮助理解并掌握这三个框架的集成与使用,实现CRUD...

    Struts+Spring+Ibatis示例

    Struts、Spring 和 iBatis 是 Java Web 开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且易于维护的系统架构。这个"Struts+Spring+Ibatis示例"提供了一个基础的整合应用,帮助开发者理解这三者如何...

    SSI框架搭建实例教程(struts spring ibatis整合 附切面事物处理)

    SSI框架是指Struts、Spring和iBatis的集成,这三种框架分别负责MVC模式中的表现层、业务层和数据访问层。本教程将详细介绍如何在特定环境下搭建一个基于SSI的项目,并添加切面事务处理功能。 1. **环境配置** - ...

    struts2 spring ibatis 整合架构

    Struts2、Spring和iBatis是Java Web开发中常用的三个框架,它们分别负责MVC模式中的Action层、业务逻辑层以及数据访问层。将这三个框架整合在一起,可以构建出高效、灵活的企业级应用。 **Struts2** 是一个基于MVC...

    spring、struts、ibatis框架搭建流程

    通过上述步骤,可以成功地将Spring、Struts和iBatis这三个框架集成到一起,搭建出一个完整的Java Web应用程序架构。这样的架构不仅提供了灵活的应用程序开发方式,还能够很好地支持MVC模式的设计思想,使得应用程序...

    Struts Spring Ibatis 实现的增删改查

    Struts、Spring 和 iBatis 是 Java Web 开发中常用的技术框架,它们组合起来可以构建出功能完善的业务应用。在本项目中,我们将探讨如何利用这三个框架实现数据的增删改查(CRUD)操作。 Struts 是一个基于 MVC...

Global site tag (gtag.js) - Google Analytics