hibernate事务与jdbc事务结合问题.pdf

hibernate事务与jdbc事务结合问题.pdf

ID:55688066

大小:480.56 KB

页数:19页

时间:2020-05-24

hibernate事务与jdbc事务结合问题.pdf_第1页
hibernate事务与jdbc事务结合问题.pdf_第2页
hibernate事务与jdbc事务结合问题.pdf_第3页
hibernate事务与jdbc事务结合问题.pdf_第4页
hibernate事务与jdbc事务结合问题.pdf_第5页
资源描述:

《hibernate事务与jdbc事务结合问题.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Hibernate事务与JDBC事务结合问题2010年11月16日测试一:Dao代码:Service代码:页面1Hibernate事务与JDBC事务结合问题2010年11月16日在Hibernate事务与JDBC事务都配置的情况下执行service方法,成功插入了两条数据时间不一样这是因为本地时间和数据库时间不一致,不影响测试页面2Hibernate事务与JDBC事务结合问题2010年11月16日测试二:spring配置不变,两种事务都配置Dao:addGuest1方法不变,让addGuest2方法报错,不设置Ismem的值,但是数据库是不允许为空的。页面3Hibernate事务与J

2、DBC事务结合问题2010年11月16日Service代码不变执行:控制台报错查看数据库:之前已经把上次的数据删除,再查看发现是空的,这说明hibernate事务起作用了,方法2报错造成了方法1的回滚现在换让方法1报错,方法2正常,然后在service里把这两个方法的执行顺序调换页面4Hibernate事务与JDBC事务结合问题2010年11月16日dao方法Service方法页面5Hibernate事务与JDBC事务结合问题2010年11月16日执行:控制台报错not-nullpropertyreferencesanullortransientvalue:com.fzdna.app

3、lication.agent.dto.domain.extend.shop.ShpGuestDto.ismem查看数据库是空的,说明方法1的报错造成了方法2的回滚,证明JDBC事务起作用了测试三:修改spring配置,只配置Hibernate事务,JDBC事务去掉dao方法让方法1报错,service方法先执行方法2,再执行方法1页面6Hibernate事务与JDBC事务结合问题2010年11月16日执行后查询数据库:发现JDBC的数据插进去了,并没有回滚。再增加个正确的hibernate增加方法试下页面7Hibernate事务与JDBC事务结合问题2010年11月16日执行后查询数

4、据库:发现还是JDBC的数据插入进去了,并没有回滚。这说明,hibernate事务无法控制JDBC的操作,对自己hibernate的操作可以正常回滚。测试四:spring配置改为JDBC事务打开,Hibernate事务关闭让addGuest1方法正确,addGuest2方法报错,执行顺序如下页面8Hibernate事务与JDBC事务结合问题2010年11月16日查看数据库如下,发现hibernate方法插进去了,也并没有回滚再增加个正确的JDBC方法测试下Service方法改为:执行后查看数据库页面9Hibernate事务与JDBC事务结合问题2010年11月16日执行后查询数据库:

5、发现还是hibernate的数据插入进去了,并没有回滚。这说明,JDBC事务无法控制hibernate的操作,对自己JDBC的操作可以正常回滚。测试五:在上个配置不变的情况下继续修改spring配置页面10Hibernate事务与JDBC事务结合问题2010年11月16日Dao:还是让jdbc方法报错Service:页面11Hibernate事务与JDBC事务结合问题2010年11月16日执行结果:hibernate事务回滚了,但是我们并没有配置hibernate事务在service里多加几个方法测试下页面12Hibernate事务与JDBC事务结合问题2010年11月16日无论hi

6、bernate方法报错,还是JDBC方法报错,都全部回滚了说明这段配置起作用了,下面我们来看下useTransactionAwareDataSource这是个什么东西?字面意思是让事务知道数据源。页面13packageorg.springframework.orm.hibernate3;publicclassLocalSessionFactoryBeanextendsAbstractSessionFactoryBeanimplementsBeanClassLoaderAware{privatestaticfinalThreadLocalconfigTimeDa

7、taSourceHolder=newThreadLocal();if(dataSource!=null){//MakegivenDataSourceavailableforSessionFactoryconfiguration.configTimeDataSourceHolder.set(dataSource);}......................………………….结束返回是否使用SessionFactory的事务感知数据源

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。