`
hypgr
  • 浏览: 276830 次
社区版块
存档分类
最新评论

iBatis使用经验总结

阅读更多

1、基于Spring AOP的iBatis的事务控制

(1)数据源的配置,没什么大不了的,所有的都一样。

    <!-- === DATASOURCE === -->
    <bean id="ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:SONG"/>
        <property name="username" value="EMDP_ADMIN"/>
        <property name="password" value="123456"/>
    </bean>

 

(2)smc 即 SqlMapClient 的配置,这里使用的是Spring提供的SqlMapClientFactoryBean,以使用延迟加载等特性。

    <bean id="smc" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="dataSource" ref="ds" />
        <property name="configLocation" value="classpath:sqlMap.xml" />
    </bean>

(3)事务管理器的配置,这里根据我们配置的JDBC的数据源,直接配置一个JDBC的事务管理器即可。

    <bean id="jdbcTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="ds" />
    </bean>

(4)然后只要配置好AOP就可以了。(Spring2.0)

    <!-- TRANSACTION ADVICE -->
    <tx:advice id="jdbcTransactionAdvice" transaction-manager="jdbcTransactionManager">
        <tx:attributes>
            <tx:method name="save*" rollback-for="Throwable"/>
            <tx:method name="update*" rollback-for="Throwable"/>
            <tx:method name="delete*" rollback-for="Throwable"/>
            <tx:method name="insert*" rollback-for="Throwable"/>
            <tx:method name="find*" read-only="false"/>
            <tx:method name="query*" read-only="false"/>
            <tx:method name="load*" read-only="false"/>
            <tx:method name="get*" read-only="false"/>
        </tx:attributes>
    </tx:advice>
   
    <aop:config>
        <aop:pointcut id="serviceOperation" expression="execution(* *..I*Service.*(..))"/>
        <aop:advisor advice-ref="jdbcTransactionAdvice" pointcut-ref="serviceOperation"/>
    </aop:config>

这样就让所有的I*Service的实现类都有了声明的事务控制了,代码里面就无需再去考虑开始一个事务、提交一个事务等问题了(前提是使用了配置的数据源对象)。

 

2、IBatis参数传递

IBatis里需要手工写Sql语句模板,这样就需要向模板传递参数。凭现在的经验,只要有3中方式。

(1)直接的基本数据类型,如int ,String等,通过parameterClass设置,在语句模板里使用#value#占位符可以获取。

(2)Pojo对象,通过parameterClass设置,在语句模板里使用#propertyName#的方式获取。

(3)map对象,通过parameterClass设置,在语句模板里使用#keyName#的方式获取。

(4)预先定义的parameterMap,通过parameterMap设置,特别注意,在语句末班里是使用“?”作为占位符的,parameterMap里定义的顺序及占位符的顺序。

分享到:
评论

相关推荐

    ibatis 知识点总结(PDF)

    ### ibatis知识点总结 #### 简介 ibatis是一个开放源代码项目,起初由Clinton Begin在2001年发起。...ibatis在2010年由Apache ...无论是对于初学者还是经验丰富的开发者来说,ibatis都是一个值得学习和使用的框架。

    Ibatis使用总结

    标题 "Ibatis使用总结" 涉及到的是关于Ibatis这一流行的数据访问框架的实践经验与理解。Ibatis,作为一个轻量级的Java持久层框架,它弥补了JDBC在处理复杂SQL和对象关系映射方面的不足,允许开发者将SQL语句直接写在...

    ibatis经验

    # Ibatis经验分享 Ibatis,一款轻量级的Java持久层框架,因其灵活、易用的特点,在企业级开发中广泛被采用。本篇文章将基于我的学习与实践经验,全面总结Ibatis的核心概念、主要功能以及在实际应用中的注意事项,...

    IBATIS_IN_ACTION

    - **最佳实践**:总结iBATIS使用过程中的常见问题及解决策略,分享成功经验。 - **综合应用**:通过实例演示iBATIS在复杂项目中的集成与应用,帮助读者将理论知识转化为实践能力。 ### iBATIS.NET QuickStart 除了...

    iBatis详细使用手册(.net版)

    ### iBatis.Net详细使用手册知识点汇总 #### 1. iBatis.Net概述 - **定义**: iBatis.Net是一种轻...无论是对于初学者还是有经验的开发人员来说,掌握iBatis.Net的核心概念和技术都是提高.NET应用开发效率的有效途径。

    ibatis开发包(common+sqlmap+dao)

    Ibatis,全称为MyBatis...总结来说,这个Ibatis开发包为Java开发者提供了一套高效、灵活的数据库操作工具,能够极大地提高开发效率和代码质量。无论是对于新手还是有经验的开发者,理解和掌握Ibatis都是非常有价值的。

    iBatis入门(三)

    **iBatis入门(三)** 在本篇中,我们将深入探讨iBatis,这是一个流行的开源持久层框架,它允许开发者将SQL语句与Java代码分离,提供更灵活的...无论是初学者还是有经验的开发者,iBatis都是值得学习和掌握的工具。

    ibatis标签

    总结来说,`&lt;iterate&gt;`标签是iBATIS框架中的一个重要特性,它使得我们能够在SQL语句中动态地处理集合数据,避免了编写大量重复的代码。通过阅读指定的博文和PDF文档,可以深入学习如何在实际项目中有效利用这一功能...

    J2EE iBatis 概述

    ### J2EE iBatis 概述 #### 一、iBatis简介 iBatis是一种功能强大的SQL映射工具,它与传统的ORM(Object-Relational Mapping)工具(如...无论是对于新手还是有经验的开发人员来说,iBatis都是一种值得尝试的技术。

    ibatis 开发指南,开发手册 txt 版

    无论是对于初学者还是有经验的开发者来说,掌握iBatis都将极大地提高开发效率并降低维护成本。通过阅读官方文档和实践操作,开发者能够深入了解iBatis的核心功能,并根据项目需求选择最适合的技术方案。

    ibatis2小例子(转)

    压缩包中的文件 "iBatis_SqlMap的配置总结.doc" 很显然,这是对iBatis SqlMap配置的详细总结,可能包含了如何配置数据源、事务管理器、SqlSessionFactory、SqlSession的创建和关闭,以及如何在XML映射文件中定义SQL...

    IBatis查删改查与调用存储过程 mysql数据库

    7. **最佳实践**:分享一些在实际开发中使用IBatis和MySQL的技巧和经验,比如如何编写可读性高的SQL映射文件,以及如何避免SQL注入等安全问题。 **总结:** 通过这篇文章,读者可以了解到如何在Java项目中使用...

    ibatis sql 语句的编写

    通过本文的学习,我们了解了ibatis的基本使用方法,包括如何编写各种类型的SQL语句,并掌握了动态SQL的相关技巧。这些知识对于初学者来说是非常有用的,能够帮助他们在实际项目中更加灵活地处理数据库操作问题。随着...

    ibatis

    总结来说,这个压缩包为Java开发者提供了一个全面的Ibatis学习资源,从基础的框架库到详细的中文手册,无论是初学者还是经验丰富的开发者,都能从中受益。使用这些资源,你可以更好地理解和掌握Ibatis框架,提升你的...

    webwork+ibatis+spring oracle c3p0 集成框架

    总结:这个集成框架结合了WebWork的轻量级MVC、iBatis的灵活数据库操作、Spring的全面企业级服务以及C3P0的数据库连接池,为Java开发提供了强大的工具集合,能够构建出高效、稳定且易于维护的企业应用。通过深入理解...

    纯净版SpringMVC+Ibatis+log4j环境

    总结起来,这个“纯净版SpringMVC+Ibatis+log4j环境”提供了一个简洁、高效的Java Web开发基础,通过合理的模块划分和良好的日志管理,提高了开发效率和代码质量。对于初学者来说,这是一个很好的学习和实践平台,...

    基于maven的struts+spring+ibatis(ssi)经典配置

    总结来说,这篇教程将涵盖如何使用Maven来组织和构建一个基于Struts2、Spring和iBatis的Web应用,涉及到的关键步骤包括设置项目结构、配置框架、编写Action、实现业务逻辑、配置数据库连接和SQL映射,以及测试整个...

    Manning Ibatis In Action Jan 2007 Ebook-Bbl.pdf

    - **iBATIS best practices (iBATIS最佳实践)**: 第十三章总结了一系列使用iBATIS时的最佳实践,这些实践可以帮助开发者避免常见的陷阱,并提高代码的质量和可维护性。 ### 十二、综合应用案例 - **Putting it all...

Global site tag (gtag.js) - Google Analytics