欢迎来到天天文库
浏览记录
ID:48475470
大小:40.50 KB
页数:5页
时间:2020-02-04
《JdbcTemplate与事务管理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JdbcTemplate与事务管理JdbcTemplate操作采用的是JDBC默认的AutoCommit模式,也就是说我们还无法保证数据操作的原子性(要么全部生效,要么全部无效),如:JdbcTemplatejdbcTemplate=newJdbcTemplate(dataSource);jdbcTemplate.update("UPDATEuserSETage=10WHEREid='erica'");jdbcTemplate.update("UPDATEuserSETage=age+1WHEREid='erica'");由于采用了AutoCommit模式,第一个updat
2、e操作完成之后被自动提交,数据库中”erica”对应的记录已经被更新,如果第二个操作失败,我们无法使得整个事务回滚到最初状态。对于这个例子也许无关紧要,但是对于一个金融帐务系统而言,这样的问题将导致致命错误。为了实现数据操作的原子性,我们需要在程序中引入事务逻辑,在JdbcTemplate中引入事务机制,在Spring中有两种方式:1.代码控制的事务管理2.参数化配置的事务管理下面就这两种方式进行介绍。代码控制的事务管理首先,进行以下配置,假设配置文件为(Application-Context.xml):3、rg.apache.commons.dbcp.BasicDataSource"destroy-method="close">net.sourceforge.jtds.jdbc.Driverjdbc:jtds:sqlserver://127.0.0.1:1433/Sampletest4、perty>changeit5、配置中包含了三个节点:ØdataSource这里我们采用了apachedhcp组件提供的DataSource实现,并为其配置了JDBC驱动、数据库URL、用户名和密码等参数。ØtransactionManager针对JDBCDataSource类型的数据源,我们选用了D
3、rg.apache.commons.dbcp.BasicDataSource"destroy-method="close">net.sourceforge.jtds.jdbc.Driverjdbc:jtds:sqlserver://127.0.0.1:1433/Sampletest4、perty>changeit5、
4、perty>changeit
5、
6、ataSourceTransactionManager作为事务管理组件。如果需要使用基于容器的数据源(JNDI),我们可以采用如下配置:jdbc/sample7、sactionManager"/>ØuserDAO申明了一个UserDAOBean,并为其指定了dataSource和transactionManger资源。UserDAO对应的代码如下:publicclassUserDAO{privateDataSourcedataSource;privatePlatformTransactionManagertransactionManager;publicPlatformTransactionManagergetTransactionManager(){returntrans
7、sactionManager"/>ØuserDAO申明了一个UserDAOBean,并为其指定了dataSource和transactionManger资源。UserDAO对应的代码如下:publicclassUserDAO{privateDataSourcedataSource;privatePlatformTransactionManagertransactionManager;publicPlatformTransactionManagergetTransactionManager(){returntrans
此文档下载收益归作者所有