支持事务

支持事务，并且添加了单元测试