`

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;
	}
 

 

分享到:
评论

相关推荐

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

    spring企业开发实战宝宝套项目maven配置实例,完成登陆操作,配置了事务,是学习利用maven管理springmvc+spring+springjdbc很好的小例子。

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

    适用企业系统的sturts1.2+spring2.0+jdbc 的架构。 通过TransactionProxyFactoryBean 代理机制和tx/aop两种方式来管理事务的详细demo

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

    本案例主要是分别实现Spring与jdbc和hibernate结合的事务控制,如果该案例有出入的地方,请给我留言,我们一起交流

    Spring 事务简单完整例子

    完整的例子,成功运行. 配好mysql数据库后,可以直接main方法测试事务.

    spring 多数据源事务案例

    因为xa接口的事务开销比较大,在项目中如果全部使用分布式的话,那么开销也是很大的,所以在项目中分别部署了分布式事务和jdbc事务,这样可以根据需求自由搭配。 如有疑问可以加群 369091722 联系 管理员bane (就...

    Spring 3.0就这么简单源代码

    《Spring3.0就这么简单》主要介绍了Spring3.0的核心内容,不仅讲解了Spring3.0的基础知识,还深入讨论了SpringIoC容器、SpringAOP、使用SpringJDBC访问数据库、集成Hibernate、Spring的事务管理、SpringMVC、单元...

    Spring-事务的配置

    一个简单通俗的例子,演示spring事务的多种配置方式

    Spring + Hibernate + Struts 事务配置小例子(带提示框等小技巧)

    前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...

    Spring+3.x企业应用开发实战光盘源码(全)

     第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。  第10章:对实际应用中Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再有...

    jdbc连接数据库事务工厂模式

    这是我总结的jdbc连接数据库事务工厂模式的例子在项目中经常用,很不错的。

    shardingsphere-jdbc-nocas-seata:分布式事务处理方案,seata分布式事务:项目Spring Cloud + ShardingSphereJDBC + nacos + seata分组事务+ fegin

    Shardingsphere-jdbc-nocas-seata用seata分布式事务处理方案分布式事务处理方案,seata分布式事务:项目Spring Cloud + ShardingSphereJDBC + nacos + seata分组事务+ fegin

    登陆案例jar包

    spring-beans-4.2.4.RELEASE.jar //包含访问配置文件、...//spring提供对事务的支持,事务的相关处理以及实现类就在这个Jar包中。 commons-logging-1.1.1.jar //spring的必备包。用来记录程序运行时的活动的日志记录。

    spring.doc

    5.1.8.1Spring的事务管理器 117 5.1.8.2Spring事务的传播属性 117 5.1.8.3Spring事务的隔离级别 117 拓展: 118 5.1.8.4以XML配置的 形式 119 拓展: 120 5.1.8.5以注解方式配置 125 拓展: 127 5.1.9使用CGLIB以XML...

    Spring.3.x企业应用开发实战(完整版).part2

    10.5.2 Hibernate+Spring JDBC混合框架的事务管理 10.6 特殊方法成漏网之鱼 10.6.1 哪些方法不能实施Spring AOP事务 10.6.2 事务增强遗漏实例 10.7 数据连接泄漏 10.7.1 底层连接资源的访问问题 10.7.2 Spring JDBC...

    SpringBoot、SpringCloud的各种集成例子大全

    SpringBoot集成Sharding-JDBC框架-实现数据库读写分离; SpringBoot集成gRPC框架-实现RPC服务; SpringBoot集成Thrift框架-实现RPC服务; SpringBoot集成Nacos框架-实现配置中心; SpringBoot集成Jedis框架-实现Redis...

    Spring 2.0 开发参考手册

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. ...

    Spring面试题含答案.pdf

    49. Spring 框架的事务管理有哪些优点? 50. 你更倾向用那种事务管理类型? 51. 解释 AOP 52. Aspect 切面 53. 在 Spring AOP 中,关注点和横切关注的区别是什么? 54. 连接点 55. 通知 56. 切点 57. 什么是引入? ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 ...

    Spring Boot实战与原理分析视频课程包含14-18

    --实战演示在Spring Boot里面的测试案例,以及如何测试Controller 25 Spring Boot 构建微服务实战01:01:50 --一分钟配置一个Spring boot + Mybatis的微服务环境 26 Spring Boot 服务的注册和发现41:53 27 Spring ...

Global site tag (gtag.js) - Google Analytics