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不仅包含了JDBC的基本功能,如数据源配置、事务管理,还引入了模板模式,即JdbcTemplate,进一步降低了数据库操作的复杂性。 JdbcTemplate是Spring JDBC的核心类,它是对JDBC的简单而强大的封装。它提供...
通过这个SpringJDBC.rar的案例,初学者可以学习到如何配置DataSource,如何创建JdbcTemplate实例,以及如何编写和执行SQL语句。同时,实践中还可以了解到如何将Spring JDBC整合到Spring Boot项目中,以及如何处理...
3. **Transaction Management**:Spring JDBC支持声明式事务管理,这意味着我们可以在XML配置文件中定义事务边界,而不是在代码中显式地控制事务的开始、提交和回滚。 4. **PreparedStatement**:Spring JDBC鼓励...
3. **Transaction Management**:SpringJDBC支持声明式和编程式事务管理,使得事务控制更加简洁和健壮。 4. **DataSource**:Spring管理的数据源,可以是连接池,如Apache DBCP或C3P0,提高数据库连接的复用性。 *...
Spring JDBC还支持事务管理,使得在多条SQL语句执行时能保持数据的一致性。 在这个整合Demo中,我们可以预期看到以下关键组件和步骤: 1. **配置文件**:项目通常包含两个主要的配置文件,一个用于Spring MVC(如...
总结起来,Spring JDBC提供了一种更简洁、更安全的方式来处理JDBC操作,通过Spring的依赖注入和事务管理功能,可以更方便地进行数据库操作。在Spring 2.5中,结合MySQL数据库,我们可以利用JdbcTemplate执行SQL语句...
总结来说,"dwr+springJdbc例子"展示了如何利用DWR实现实时的前后端交互,Spring提供依赖注入和数据访问抽象,而JDBC则负责与数据库的底层通信。这样的组合使得开发高效、灵活且易于维护的Web应用成为可能。理解并...
四、Spring JDBC事务管理 1. 编程式事务管理:通过PlatformTransactionManager接口的begin(), commit()和rollback()方法手动控制事务。 2. 声明式事务管理:利用@Transactional注解在方法级别声明事务,Spring会自动...
本文将深入探讨在Spring框架中如何管理事务,以“Spring 事务简单完整例子”为出发点,结合标签“spring,事务,jdbc事务”,我们将详细解释Spring事务管理的原理和实践。 首先,Spring提供了两种事务管理方式:编程...
在Java世界里,Spring框架是应用最广泛的轻量级开源框架之一,它...在实际项目中,结合Spring的事务管理,可以构建出高效、健壮的数据库访问层。如果你对Spring JDBC感兴趣,这个资源中的代码会是一个很好的学习起点。
这个版本的Spring事务管理支持JDBC、Hibernate、JPA、iBatis等多种数据访问技术,可以无缝集成到各种持久层框架中。 在Spring中,事务管理器(如DataSourceTransactionManager或HibernateTransactionManager)是...
本案例重点探讨了Spring如何与两种流行的数据访问技术——JDBC(Java Database Connectivity)和Hibernate——相结合,进行事务管理。事务控制是确保数据库操作一致性、完整性的关键,尤其在多步骤操作中,它能防止...
Spring JDBC的配置主要包括数据源的设置和事务管理。在applicationContext.xml中,我们需要创建DataSource Bean,通常使用Apache的Commons DBCP或HikariCP等连接池实现。接着,配置JdbcTemplate或...
总结来说,本例子通过`TransactionProxyFactoryBean`和`@Transactional`展示了如何在Spring中实现声明式事务管理,这两种方式都利用了AOP来封装事务逻辑,使代码更加整洁,降低了事务管理的复杂性。在实际应用中,...
Spring JDBC通过一系列的抽象和模板类,将传统的JDBC操作进行了封装,减少了代码量,降低了出错的可能性,并且提供了事务管理的能力。它主要由以下几个部分组成: 1. `JdbcTemplate`:这是Spring JDBC的核心,它...
Spring的源码是开源的,通过阅读源码,我们可以理解它的内部工作机制,比如如何根据路由键选择数据源,如何处理多个数据源的事务管理等。 "工具"标签则表明可能涉及到如何在项目中集成和使用这个特性,可能包括了...
在Spring框架中,事务管理是核心功能之一,它允许开发者以声明式或编程式的方式处理事务边界。在本案例中,我们关注的是Spring中的Nested事务,这是一个相对复杂的特性,但非常有用,特别是在需要子事务处理的场景下...
2. **Transaction Management**: Spring-JDBC支持声明式事务管理,允许开发者使用注解(如@Transactional)来控制事务的边界,无需手动调用commit()和rollback()。这提高了代码的可读性和可维护性。 3. **...