PyBatis0.バージョン1-テスト

2922 ワード

テーブル構造:
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