spring-JDBC事务管理

2019-03-03  javaweb jsp apache-tomcat Spring MVC          公开-普

Spring事务管理(详解+实例)https://blog.csdn.net/trigl/article/details/50968079

Spring中的事务管理详解https://www.cnblogs.com/longshiyVip/p/5061637.html

Spring JDBC-Spring对事务管理的支持https://blog.csdn.net/yangshangwei/article/details/78050480#t8

透彻的掌握 Spring 中@transactional 的使用https://www.ibm.com/developerworks/cn/java/j-master-spring-transactional-use/index.html

 
评论列表

基于AOP的注解方式

    2019-03-05    

通过AOP注释方式一定要开启aop注解 <aop:aspectj-autoproxy proxy-target-class="true" />

然后开启事务,开启事务后数据源配置的defaultAutoCommit参数无效

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="url" value="jdbc:mysql://localhost:3306/test"></property>
    <property name="username" value="root"></property>
    <property name="password" value=""></property>
    <property name="defaultAutoCommit" value="true" />
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
	<property name="dataSource" ref="dataSource"/>
</bean>

<!-- 配置开启事务 -->
<!-- 配置事务管理器 -->
<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>

在需要使用事务的地方使用@Transactional注解

通过jdbc对数据库的操作:

@Autowired
private JdbcTemplate jdbcTemplate;

public void out(String test) {
	jdbcTemplate.update("insert into inss(test) values(?)",test);
}

tx标签配置的拦截器

    2019-03-05    

指定事务的切入点。和AOP注解方式的不同只是将AOP注解换成了tx标签配置拦截器。同样需要开启aop 

<aop:aspectj-autoproxy />
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="url" value="jdbc:mysql://localhost:3306/test"></property>
    <property name="username" value="root"></property>
    <property name="password" value=""></property>
    <property name="defaultAutoCommit" value="true" />
</bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
	<property name="dataSource" ref="dataSource"/>
</bean>

<!-- 配置开启事务 -->
<!-- 配置事务管理器 -->
<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 切面 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes >
        <tx:method name="delete*" propagation="REQUIRED" />
        <tx:method name="insert*" propagation="REQUIRED" />
        <tx:method name="update*" propagation="REQUIRED" />
        <tx:method name="*" propagation="SUPPORTS" read-only="true"/>
    </tx:attributes>
</tx:advice>
<aop:config >
    <aop:pointcut expression="execution(* vip.chencheng.controller.*.*(..))" id="serviceCutPoint"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceCutPoint"/>
</aop:config>
文章内容的h2标题锚点:
评论列表
基于AOP的注解方式
tx标签配置的拦截器