关于事务的困惑,求高手解答!!!!!!!!!!!
在jdbc中,一个dml语句会默认开启事务,执行成功后提交。如果是两个dml语句,如果不设置自动提交为false的话,会在执行过程中开启两个事务把?
还有,在hibernate中是对jdbc的封装,如果还是两个dml语句,那么应该是如果不开启事务的话,也能执行,但是第二条语句会提示nosession的错误,这是为什么?数据库不会默认给开启事务吗?
还有,spring对事务的管理,如果在一个方法上不开启事务,那么能不能正常执行?如果是两条dml语句有是怎么样?是不是不加事务就会默认像jdbc一样,第一个dml开启一个事务,第二个又开启一个?
我有点乱,希望有高手给我解答下,先谢谢了!!!!!!!!!!!!!!!!!!!!!!
[解决办法]
在jdbc中,一个dml语句会默认开启事务,执行成功后提交。这个,要设置自动提交为true的时候才会,如果为false,需要手动commit。
如果是两个dml语句,如果不设置自动提交为false的话,会在执行过程中开启两个事务把?这个,看你的程序是怎么写的,如果在一个线程里,提交第一个语句后,开启一个事务,执行成功,commit,然后再提交第二个语句,开启一个事务,执行成功,commit。如果是两个线程里,很可能是同时开两个事务。
在hibernate中是对jdbc的封装,如果还是两个dml语句,那么应该是如果不开启事务的话,也能执行,但是第二条语句会提示nosession的错误,这是为什么?数据库不会默认给开启事务吗?
你如果没有开启事务管理,hibernate会自动开启管理的,第二条报错,你得查查是什么原因......
spring对事务的管理,如果在一个方法上不开启事务,那么能不能正常执行?如果是两条dml语句有是怎么样?是不是不加事务就会默认像jdbc一样,第一个dml开启一个事务,第二个又开启一个?
spring 对事务的管理和hibernate一样的,只是实现方法不同.......
[解决办法]