表结构:
name varchar(100),age int,score int
下面是测试代码:
# -*- coding:utf-8 -*-
'''
Created on 2013-3-5
@author: naughty
'''
from com.domain import beans
from com.domain.TransactionManager import TransactionManager
from com.util.DBExecuteCenter import queryForObject, queryInsert, queryUpdate, \
queryDelete
if __name__ == '__main__':
#===========================================================================
# 测试插入
#===========================================================================
s = beans.Student()
s.age = '1'
s.name = 'cc'
s.score = 11
count = queryInsert('insert', s)
print count
#============================================================================
# 测试大事务
#============================================================================
s = beans.Student()
s.age = '1'
s.name = 'aa'
s.score = 11
t=TransactionManager()
try:
t.queryInsert('insert', s)
s.name='bb'
t.queryInsert('insert', s)
t.commitTransaction()
except:
t.rollbackTransaction()
print 'end'
分别测试了一个插入的情况和一个能正常执行的大事务情况。
------------------------------------------------
下面是一个测试不能正常执行的大事务的情况。
由于name字段是主键,所以插入一个已经存在的name的记录,会失败。此时,事务会回滚。
# -*- coding:utf-8 -*-
'''
Created on 2013-3-5
@author: naughty
'''
from com.domain import beans
from com.domain.TransactionManager import TransactionManager
from com.util.DBExecuteCenter import queryForObject, queryInsert, queryUpdate, \
queryDelete
if __name__ == '__main__':
#===========================================================================
# 测试插入
#===========================================================================
s = beans.Student()
s.age = '1'
s.name = 'cc'
s.score = 11
count = queryInsert('insert', s)
print count
#============================================================================
# 测试大事务
#============================================================================
s = beans.Student()
s.age = '1'
s.name = 'bb'
s.score = 11
t=TransactionManager()
try:
t.queryInsert('insert', s)
s.name='cc'
t.queryInsert('insert', s)
t.commitTransaction()
except:
t.rollbackTransaction()
print 'end'
执行完毕之后,只有cc插入到数据库中了。bb并没有插入到数据库中【因为大事务中,bb插入之后又想插入cc,但是cc已经在数据库中存在了】。说明事务起作用了。
------------------------------------------------
pybatis 0.1版本下载地址:
http://download.csdn.net/detail/imzoer/5133860