mybatis之初级使用日记

一直习惯于ssh项目,这次有个创新的想法,不能一直使用ssh,要与时惧进,得学习使用一些新潮的技术.这不,项目又来了,决定使用struts2.3+spring3.1.1+mybatis3.1,都是些时下最新的发布包.

先做了spring与mybatis的整合,整合后还是挻好用的,就是事务不那么听使唤,明明配置了service类必须要实现TransactionService标识接口,才具有事务,可我在测试过程中,写了一个service类,在这个类中有一个insert()方法,用于做插入数据操作,然后没去实现TransactionService接口.照理来说,这个类是不具有事务的,然后我运行,结果发现还是往数据库中插入了记录.但可以肯定的是,本次插入操作的确没有创建事务,因为控制台没有打出创建事务的日志.这就让我想到直接用jdbc操作数据库时,如果没有开始事务,那么插入操作也是成功的,jdbc会默认为本次操作创建一个事务,然后操作完毕立即提交事务.也就是说当没有显式创建事务时,jdbc会隐式的为每条sql语句创建一个事务,sql一执行完就立马提交.如果显式创建了事务,那么也要显式的提交事务,这样才会把本次事务的所有sql操作一起提交.

hibernate的事务就不这样,如果没有显式的创建事务,那么无论你怎么插入,更新,删除数据都不会被提交.这一点是我很欣赏的地方.

你可能感兴趣的:(spring,sql,数据库,jdbc,struts,service)