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知识点总结 #### 简介 ibatis是一个开放源代码项目,起初由Clinton Begin在2001年发起。...ibatis在2010年由Apache ...无论是对于初学者还是经验丰富的开发者来说,ibatis都是一个值得学习和使用的框架。
标题 "Ibatis使用总结" 涉及到的是关于Ibatis这一流行的数据访问框架的实践经验与理解。Ibatis,作为一个轻量级的Java持久层框架,它弥补了JDBC在处理复杂SQL和对象关系映射方面的不足,允许开发者将SQL语句直接写在...
# Ibatis经验分享 Ibatis,一款轻量级的Java持久层框架,因其灵活、易用的特点,在企业级开发中广泛被采用。本篇文章将基于我的学习与实践经验,全面总结Ibatis的核心概念、主要功能以及在实际应用中的注意事项,...
- **最佳实践**:总结iBATIS使用过程中的常见问题及解决策略,分享成功经验。 - **综合应用**:通过实例演示iBATIS在复杂项目中的集成与应用,帮助读者将理论知识转化为实践能力。 ### iBATIS.NET QuickStart 除了...
### iBatis.Net详细使用手册知识点汇总 #### 1. iBatis.Net概述 - **定义**: iBatis.Net是一种轻...无论是对于初学者还是有经验的开发人员来说,掌握iBatis.Net的核心概念和技术都是提高.NET应用开发效率的有效途径。
Ibatis,全称为MyBatis...总结来说,这个Ibatis开发包为Java开发者提供了一套高效、灵活的数据库操作工具,能够极大地提高开发效率和代码质量。无论是对于新手还是有经验的开发者,理解和掌握Ibatis都是非常有价值的。
**iBatis入门(三)** 在本篇中,我们将深入探讨iBatis,这是一个流行的开源持久层框架,它允许开发者将SQL语句与Java代码分离,提供更灵活的...无论是初学者还是有经验的开发者,iBatis都是值得学习和掌握的工具。
总结来说,`<iterate>`标签是iBATIS框架中的一个重要特性,它使得我们能够在SQL语句中动态地处理集合数据,避免了编写大量重复的代码。通过阅读指定的博文和PDF文档,可以深入学习如何在实际项目中有效利用这一功能...
### J2EE iBatis 概述 #### 一、iBatis简介 iBatis是一种功能强大的SQL映射工具,它与传统的ORM(Object-Relational Mapping)工具(如...无论是对于新手还是有经验的开发人员来说,iBatis都是一种值得尝试的技术。
无论是对于初学者还是有经验的开发者来说,掌握iBatis都将极大地提高开发效率并降低维护成本。通过阅读官方文档和实践操作,开发者能够深入了解iBatis的核心功能,并根据项目需求选择最适合的技术方案。
压缩包中的文件 "iBatis_SqlMap的配置总结.doc" 很显然,这是对iBatis SqlMap配置的详细总结,可能包含了如何配置数据源、事务管理器、SqlSessionFactory、SqlSession的创建和关闭,以及如何在XML映射文件中定义SQL...
7. **最佳实践**:分享一些在实际开发中使用IBatis和MySQL的技巧和经验,比如如何编写可读性高的SQL映射文件,以及如何避免SQL注入等安全问题。 **总结:** 通过这篇文章,读者可以了解到如何在Java项目中使用...
通过本文的学习,我们了解了ibatis的基本使用方法,包括如何编写各种类型的SQL语句,并掌握了动态SQL的相关技巧。这些知识对于初学者来说是非常有用的,能够帮助他们在实际项目中更加灵活地处理数据库操作问题。随着...
总结来说,这个压缩包为Java开发者提供了一个全面的Ibatis学习资源,从基础的框架库到详细的中文手册,无论是初学者还是经验丰富的开发者,都能从中受益。使用这些资源,你可以更好地理解和掌握Ibatis框架,提升你的...
总结:这个集成框架结合了WebWork的轻量级MVC、iBatis的灵活数据库操作、Spring的全面企业级服务以及C3P0的数据库连接池,为Java开发提供了强大的工具集合,能够构建出高效、稳定且易于维护的企业应用。通过深入理解...
总结起来,这个“纯净版SpringMVC+Ibatis+log4j环境”提供了一个简洁、高效的Java Web开发基础,通过合理的模块划分和良好的日志管理,提高了开发效率和代码质量。对于初学者来说,这是一个很好的学习和实践平台,...
总结来说,这篇教程将涵盖如何使用Maven来组织和构建一个基于Struts2、Spring和iBatis的Web应用,涉及到的关键步骤包括设置项目结构、配置框架、编写Action、实现业务逻辑、配置数据库连接和SQL映射,以及测试整个...
- **iBATIS best practices (iBATIS最佳实践)**: 第十三章总结了一系列使用iBATIS时的最佳实践,这些实践可以帮助开发者避免常见的陷阱,并提高代码的质量和可维护性。 ### 十二、综合应用案例 - **Putting it all...