0 0

jdbcTemplate必须使用spring事务吗 否则不能提交?5

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的业务方法我都要加上事务才能执行?有些我是不想加事务的!

2010年6月30日 17:28

1个答案 按时间排序 按投票排序

0 0

返回为1,说明数据库执行了一条SQL语句,没有事务控就spring就不会提交,update不成功是正常的,你的那个异常在没有spring事务的控制下是不影响sql执行的。而且增删改本身就必须有事务,jdbc默认是自动提交事务,用了spring事务后由spring提交,配置了事务后,有没有事务对你都没影响,除非你不对数据库进行操作,如果不操作,你把方法名改了就好,如果要操作又想不用事务,那是不可能的。

2013年3月22日 09:57

相关推荐

    SSH笔记-Spring JdbcTemplate

    如果发生异常,事务会自动回滚,否则在所有操作成功后提交事务。 5. **异常处理**:JdbcTemplate将JDBC抛出的SQLException转换为Spring的DataAccessException子类,这样可以更好地进行异常处理和错误报告,保持业务...

    spring 事务基于注解模式

    编程式事务管理通过编程的方式(如使用`TransactionTemplate`或直接调用`PlatformTransactionManager`)来控制事务的开始、提交、回滚等操作。而声明式事务管理则是在配置文件或者注解中声明事务边界,将事务管理与...

    Spirng-JdbcTemplate资料.docx

    Spring的JdbcTemplate是Spring框架为简化JDBC操作而设计的一个工具类库...通过灵活的回调机制和事务管理方式,它成为Spring框架中不可或缺的一部分,无论是在大型的Spring应用还是独立的JDBC操作中,都能发挥重要作用。

    Spring-事务的配置

    - 事务的传播行为:如REQUIRED(默认,如果已有事务则加入,否则新建)、SUPPORTS(如果已有事务则支持,否则不开启)、MANDATORY(必须在已有的事务中运行)、REQUIRES_NEW(总是新建事务,即使在已有事务中)、...

    SpringJDBC注解事务.zip

    - SUPPORTS:如果当前存在事务,就支持,否则不开启事务。 - MANDATORY:如果当前存在事务,就加入,否则抛出异常。 - NOT_SUPPORTED:始终不开启事务,如果存在事务,就挂起。 - NEVER:始终不开启事务,如果...

    spring 事务配置

    ### Spring 事务配置详解 #### 一、Spring 事务配置概览 ...无论是使用 JDBCTemplate 还是 HibernateTemplate,Spring 都能够提供强大的事务支持。对于开发人员来说,理解这些基本的概念和配置方式是非常重要的。

    spring4+atomikos实现分布式事务

    这个注解会告诉Spring在执行该方法时启动一个新的事务,如果出现异常则回滚,否则提交事务。对于跨数据库的场景,Atomikos会自动处理这些事务边界,确保所有操作要么全部成功,要么全部失败。 ```java @Service ...

    小码农的代码(二)----------SpringJDBC事务控制

    常见的传播行为有PROPAGATION_REQUIRED(默认,如果当前没有事务,就新建一个)、PROPAGATION_REQUIRES_NEW(总是新建一个事务,如果已有事务则挂起)、PROPAGATION_SUPPORTS(如果已有事务则加入,否则不创建)等。...

    day39-Spring 17-Spring的JDBC模板:完成增删改的操作

    否则,在方法结束时提交事务。例如: ```java @Transactional public void createUserAndLogActivity(User user, String activity) { insertUser(user); logActivity(activity); // 假设logActivity也会调用...

    spring3+springMVC+springJDBC+jQuery easyui的登录项目

    该项目是一个基于Spring 3、Spring MVC、Spring JDBC和jQuery EasyUI的登录系统示例,旨在展示如何整合这些技术来构建一个完整的Web应用。下面将详细解释这些技术及其在项目中的作用。 1. **Spring 3**: Spring是...

    springboot-jdbc-aop-transactional-demo:源码主要用于学习Spring事务,内容包括通过AOP机制加注解(Annotation)方式实现事务,事务源为JDBC数据源下的DataSourceTransactionManager,并合并Swagger-UI-2.9.2进行调试,数据库采用MySQL,持久层使用JDBC

    如果方法中发生异常,Spring会自动回滚事务,否则在所有操作成功后提交事务。 JDBC作为Java与数据库交互的标准接口,扮演着连接应用程序和数据库的角色。在Spring Boot中,我们可以使用JdbcTemplate或JPA(Java ...

    (品管工具QC七大手法)BSS_QC_数据库连接和事务管理专题.pdf

    例如,在Hibernate中,通过getSession().connection()可以获取连接,但不能直接关闭,因为连接由Session管理,会在事务提交或回滚时自动释放。而在JdbcTemplate中,通过jdbc.getDataSource().getConnection()获取的...

    Spring5源码之JDBC

    当使用JdbcTemplate时,如果在同一个事务上下文中,多个数据库操作会被一起提交或回滚。例如,如果在一个Service方法中连续调用了save和update,它们会被包含在一个数据库事务内,除非显式地开启新的事务,否则默认...

    jdbc(template).zip

    4. **事务支持**:Spring JDBC Template提供了一套易于使用的事务管理API,可以方便地在业务代码中进行事务的开始、提交、回滚操作,提高了代码的事务处理能力。 5. **异常处理**:JDBC Template将数据库抛出的异常...

    hibernate培训讲座

    5. 提交事务:如果所有操作成功,提交事务;否则,回滚事务。 6. 关闭Session和SessionFactory:确保资源的释放。 **四、Hibernate映射机制** 1. **XML映射文件**:通过hibernate-mapping元素定义实体类和数据库表...

    基于JDBC和servlet的简单登陆验证

    JDBCTemplate是Spring框架的一部分,它为JDBC提供了模板方法模式,减少了编写SQL和处理结果集的代码量。开发者可以使用它来执行预编译的SQL语句,处理异常,以及自动关闭数据库资源。这使得代码更简洁,易于维护,...

    代理模式、AOP编程、jdbc支持

    在Spring框架中,为了简化JDBC的使用,提供了JdbcTemplate和NamedParameterJdbcTemplate工具类。这些类封装了大量的 JDBC 代码,比如打开和关闭连接、处理异常、执行SQL等,使得开发人员可以更专注于SQL语句本身,而...

Global site tag (gtag.js) - Google Analytics