# -*- coding: utf8 -*-
import MySQLdb
import sys
reload(sys)
sys.setdefaultencoding('utf8')
class TransferMoney(object):
def __init__(self,conn):
self.conn = conn
def tranfer(self,toAccount,fromAccount,money):
self.check_acc_available(toAccount)
self.check_acc_available(fromAccount)
self.check_money_enough(fromAccount,money)
self.reduce_money(fromAccount,money)
self. add_money(toAccount,money)
print u"转账成功"
def check_acc_available(self,account):
try:
cursor = self.conn.cursor()
sql = "select * from user where name='%s'"%account
cursor.execute(sql)
if cursor.rowcount!=1:
raise Exception("帐号%s不存在"%account)
finally:
cursor.close()
def check_money_enough(self,account,money):
try:
cursor = self.conn.cursor()
sql = "select money from user where name='%s'"%account
cursor.execute(sql)
account_money = cursor.fetchone()[0]
if account_money < money:
raise Exception("账户%s:余额为%s,余额不足"%(account,account_money))
finally:
cursor.close()
def reduce_money(self,account,money):
try:
cursor = self.conn.cursor()
sql = "update user set money=money-%s where name='%s'"%(money,account)
cursor.execute(sql)
if cursor.rowcount!=1:
raise Exception("扣款失败")
finally:
cursor.close()
def add_money(self,account,money):
try:
cursor = self.conn.cursor()
sql = "update user set money=money+%s where name='%s'"%(money,account)
cursor.execute(sql)
if cursor.rowcount!=1:
raise Exception("加款失败")
finally:
cursor.close()
conn = MySQLdb.Connect(host="127.0.0.1",port=3306,user="root",passwd="123456",db="test",charset="utf8")
cursor = conn.cursor()
tr_money = TransferMoney(conn)
try:
tr_money.tranfer("Tom","Jim",10)
conn.commit()
except Exception as e:
print u"转账出错:"+str(e)
conn.rollback()
finally:
conn.close()
點(diǎn)擊查看更多內(nèi)容
3人點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)