`

Spring JDBC事务管理例子

阅读更多
	public Boolean update(Map paraMap) throws Exception{
		String userId = paraMap.get("userId").toString();
		List entitledUserList = (List)paraMap.get("entitledUserList");

		StringBuffer deleteQuery = new StringBuffer();
		deleteQuery.append("delete from TblPnlSalesEntitlement ");
		deleteQuery.append("where userId ='"+userId);

		
		Session session = null;
	   	Connection con = null;
	   	Statement stmt  = null;
	   	Boolean rtn = false;
	   	
	   	DefaultTransactionDefinition def = new DefaultTransactionDefinition();
		def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
		TransactionStatus status = txManager.getTransaction(def);
		
	   	try {
			session = getDaoService().getHibernateTemplate().getSessionFactory().openSession();	   
			con = session.connection();
			
			con.setAutoCommit(false);
			PreparedStatement pqs = con.prepareStatement(con.nativeSQL("SET CHAINED OFF"));
			pqs.execute();	
			
			stmt = con.createStatement();
			stmt.addBatch(deleteQuery.toString());
			
			
			Iterator entitledUserIt = entitledUserList.iterator();
			while(entitledUserIt.hasNext()){				
				String entitledUser = entitledUserIt.next().toString();				
				
				StringBuffer insertQuery = new StringBuffer();
				insertQuery.append("insert into TblPnlSalesEntitlement(userId,entitledUserId) ");
				insertQuery.append("values('"+userId+"','"+entitledUser"');
				
				stmt.addBatch(insertQuery.toString());				
			}
			stmt.executeBatch();

			txManager.commit(status);
			rtn = true;
	   	}catch (Exception e) {
	   		txManager.rollback(status);
			e.printStackTrace();
			throw new Exception(e);
		}finally{
			if(con!=null)
				try {
					con.close();
				} catch (SQLException e) {
					e.printStackTrace();
					throw new Exception(e);
				}
			if(session!=null)
				session.close();
		}
		return rtn;
	}
 

 

分享到:
评论

相关推荐

    spring jdbc.zip

    Spring JDBC不仅包含了JDBC的基本功能,如数据源配置、事务管理,还引入了模板模式,即JdbcTemplate,进一步降低了数据库操作的复杂性。 JdbcTemplate是Spring JDBC的核心类,它是对JDBC的简单而强大的封装。它提供...

    SpringJDBC.rar_SpringJDBC_spring jdbc

    通过这个SpringJDBC.rar的案例,初学者可以学习到如何配置DataSource,如何创建JdbcTemplate实例,以及如何编写和执行SQL语句。同时,实践中还可以了解到如何将Spring JDBC整合到Spring Boot项目中,以及如何处理...

    spring jdbc示例代码

    3. **Transaction Management**:Spring JDBC支持声明式事务管理,这意味着我们可以在XML配置文件中定义事务边界,而不是在代码中显式地控制事务的开始、提交和回滚。 4. **PreparedStatement**:Spring JDBC鼓励...

    SpringMVC+SpringJDBC

    3. **Transaction Management**:SpringJDBC支持声明式和编程式事务管理,使得事务控制更加简洁和健壮。 4. **DataSource**:Spring管理的数据源,可以是连接池,如Apache DBCP或C3P0,提高数据库连接的复用性。 *...

    Spring mvc + Spring + Spring jdbc 整合 demo

    Spring JDBC还支持事务管理,使得在多条SQL语句执行时能保持数据的一致性。 在这个整合Demo中,我们可以预期看到以下关键组件和步骤: 1. **配置文件**:项目通常包含两个主要的配置文件,一个用于Spring MVC(如...

    Spring JDBC实现代码

    总结起来,Spring JDBC提供了一种更简洁、更安全的方式来处理JDBC操作,通过Spring的依赖注入和事务管理功能,可以更方便地进行数据库操作。在Spring 2.5中,结合MySQL数据库,我们可以利用JdbcTemplate执行SQL语句...

    dwr+springJdbc例子

    总结来说,"dwr+springJdbc例子"展示了如何利用DWR实现实时的前后端交互,Spring提供依赖注入和数据访问抽象,而JDBC则负责与数据库的底层通信。这样的组合使得开发高效、灵活且易于维护的Web应用成为可能。理解并...

    spring-jdbc-dao

    四、Spring JDBC事务管理 1. 编程式事务管理:通过PlatformTransactionManager接口的begin(), commit()和rollback()方法手动控制事务。 2. 声明式事务管理:利用@Transactional注解在方法级别声明事务,Spring会自动...

    Spring 事务简单完整例子

    本文将深入探讨在Spring框架中如何管理事务,以“Spring 事务简单完整例子”为出发点,结合标签“spring,事务,jdbc事务”,我们将详细解释Spring事务管理的原理和实践。 首先,Spring提供了两种事务管理方式:编程...

    spring中jdbc的操作

    在Java世界里,Spring框架是应用最广泛的轻量级开源框架之一,它...在实际项目中,结合Spring的事务管理,可以构建出高效、健壮的数据库访问层。如果你对Spring JDBC感兴趣,这个资源中的代码会是一个很好的学习起点。

    Spring事务管理的jar包

    这个版本的Spring事务管理支持JDBC、Hibernate、JPA、iBatis等多种数据访问技术,可以无缝集成到各种持久层框架中。 在Spring中,事务管理器(如DataSourceTransactionManager或HibernateTransactionManager)是...

    spring分别与jdbc和hibernate结合的事务控制--案例

    本案例重点探讨了Spring如何与两种流行的数据访问技术——JDBC(Java Database Connectivity)和Hibernate——相结合,进行事务管理。事务控制是确保数据库操作一致性、完整性的关键,尤其在多步骤操作中,它能防止...

    baobaotao源码springmvc+spring+springjdbc技术栈maven配置

    Spring JDBC的配置主要包括数据源的设置和事务管理。在applicationContext.xml中,我们需要创建DataSource Bean,通常使用Apache的Commons DBCP或HikariCP等连接池实现。接着,配置JdbcTemplate或...

    spring 事务管理例子(TransactionProxyFactoryBean代理机制 和 tx/aop)

    总结来说,本例子通过`TransactionProxyFactoryBean`和`@Transactional`展示了如何在Spring中实现声明式事务管理,这两种方式都利用了AOP来封装事务逻辑,使代码更加整洁,降低了事务管理的复杂性。在实际应用中,...

    spring-jdbc.rar_goldenw65_map25w_sellwof_spring-jdbc

    Spring JDBC通过一系列的抽象和模板类,将传统的JDBC操作进行了封装,减少了代码量,降低了出错的可能性,并且提供了事务管理的能力。它主要由以下几个部分组成: 1. `JdbcTemplate`:这是Spring JDBC的核心,它...

    spring-jdbc-RoutingDataSource

    Spring的源码是开源的,通过阅读源码,我们可以理解它的内部工作机制,比如如何根据路由键选择数据源,如何处理多个数据源的事务管理等。 "工具"标签则表明可能涉及到如何在项目中集成和使用这个特性,可能包括了...

    Spring-JDBC,带一小例子

    2. **Transaction Management**: Spring-JDBC支持声明式事务管理,允许开发者使用注解(如@Transactional)来控制事务的边界,无需手动调用commit()和rollback()。这提高了代码的可读性和可维护性。 3. **...

    Spring Nested事务简单案例

    在Spring框架中,事务管理是核心功能之一,它允许开发者以声明式或编程式的方式处理事务边界。在本案例中,我们关注的是Spring中的Nested事务,这是一个相对复杂的特性,但非常有用,特别是在需要子事务处理的场景下...

Global site tag (gtag.js) - Google Analytics