spring事务配置:
<!-- 事务通知 -->
<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="save*" read-only="true" />
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="get*" propagation="NOT_SUPPORTED" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<!-- 管理事务操作 -->
<aop:pointcut id="servicesPointcut"
expression="execution(* com.website.model.*.*(..))" />
<aop:advisor advice-ref="txAdvice"
pointcut-ref="servicesPointcut" />
</aop:config>
com.website.model下service类中的方法:
public int updateTestByid(String mobanname, int id) {
// TODO Auto-generated method stub
int isOk = exampleDao.updateMobannameByid("测试1231", 667);
exampleDao.updateMobannameByid("测试dasd", 1049);
Integer.parseInt("错误");
return isOk;
}
如果启用事务,事务自动回滚。update不成功,这个正常.
如果我在spring中把update*的事务去掉或者把事务配置的代码全删掉,updateTestByid里去掉" Integer.parseInt("错误")"方法,update提交不成功,返回数值依旧是1。。 请问怎么回事,难道只要涉及到update,insert,del的业务方法我都要加上事务才能执行?有些我是不想加事务的!
相关推荐
如果发生异常,事务会自动回滚,否则在所有操作成功后提交事务。 5. **异常处理**:JdbcTemplate将JDBC抛出的SQLException转换为Spring的DataAccessException子类,这样可以更好地进行异常处理和错误报告,保持业务...
编程式事务管理通过编程的方式(如使用`TransactionTemplate`或直接调用`PlatformTransactionManager`)来控制事务的开始、提交、回滚等操作。而声明式事务管理则是在配置文件或者注解中声明事务边界,将事务管理与...
Spring的JdbcTemplate是Spring框架为简化JDBC操作而设计的一个工具类库...通过灵活的回调机制和事务管理方式,它成为Spring框架中不可或缺的一部分,无论是在大型的Spring应用还是独立的JDBC操作中,都能发挥重要作用。
- 事务的传播行为:如REQUIRED(默认,如果已有事务则加入,否则新建)、SUPPORTS(如果已有事务则支持,否则不开启)、MANDATORY(必须在已有的事务中运行)、REQUIRES_NEW(总是新建事务,即使在已有事务中)、...
- SUPPORTS:如果当前存在事务,就支持,否则不开启事务。 - MANDATORY:如果当前存在事务,就加入,否则抛出异常。 - NOT_SUPPORTED:始终不开启事务,如果存在事务,就挂起。 - NEVER:始终不开启事务,如果...
### Spring 事务配置详解 #### 一、Spring 事务配置概览 ...无论是使用 JDBCTemplate 还是 HibernateTemplate,Spring 都能够提供强大的事务支持。对于开发人员来说,理解这些基本的概念和配置方式是非常重要的。
这个注解会告诉Spring在执行该方法时启动一个新的事务,如果出现异常则回滚,否则提交事务。对于跨数据库的场景,Atomikos会自动处理这些事务边界,确保所有操作要么全部成功,要么全部失败。 ```java @Service ...
常见的传播行为有PROPAGATION_REQUIRED(默认,如果当前没有事务,就新建一个)、PROPAGATION_REQUIRES_NEW(总是新建一个事务,如果已有事务则挂起)、PROPAGATION_SUPPORTS(如果已有事务则加入,否则不创建)等。...
否则,在方法结束时提交事务。例如: ```java @Transactional public void createUserAndLogActivity(User user, String activity) { insertUser(user); logActivity(activity); // 假设logActivity也会调用...
该项目是一个基于Spring 3、Spring MVC、Spring JDBC和jQuery EasyUI的登录系统示例,旨在展示如何整合这些技术来构建一个完整的Web应用。下面将详细解释这些技术及其在项目中的作用。 1. **Spring 3**: Spring是...
如果方法中发生异常,Spring会自动回滚事务,否则在所有操作成功后提交事务。 JDBC作为Java与数据库交互的标准接口,扮演着连接应用程序和数据库的角色。在Spring Boot中,我们可以使用JdbcTemplate或JPA(Java ...
例如,在Hibernate中,通过getSession().connection()可以获取连接,但不能直接关闭,因为连接由Session管理,会在事务提交或回滚时自动释放。而在JdbcTemplate中,通过jdbc.getDataSource().getConnection()获取的...
当使用JdbcTemplate时,如果在同一个事务上下文中,多个数据库操作会被一起提交或回滚。例如,如果在一个Service方法中连续调用了save和update,它们会被包含在一个数据库事务内,除非显式地开启新的事务,否则默认...
4. **事务支持**:Spring JDBC Template提供了一套易于使用的事务管理API,可以方便地在业务代码中进行事务的开始、提交、回滚操作,提高了代码的事务处理能力。 5. **异常处理**:JDBC Template将数据库抛出的异常...
5. 提交事务:如果所有操作成功,提交事务;否则,回滚事务。 6. 关闭Session和SessionFactory:确保资源的释放。 **四、Hibernate映射机制** 1. **XML映射文件**:通过hibernate-mapping元素定义实体类和数据库表...
JDBCTemplate是Spring框架的一部分,它为JDBC提供了模板方法模式,减少了编写SQL和处理结果集的代码量。开发者可以使用它来执行预编译的SQL语句,处理异常,以及自动关闭数据库资源。这使得代码更简洁,易于维护,...
在Spring框架中,为了简化JDBC的使用,提供了JdbcTemplate和NamedParameterJdbcTemplate工具类。这些类封装了大量的 JDBC 代码,比如打开和关闭连接、处理异常、执行SQL等,使得开发人员可以更专注于SQL语句本身,而...