Python操作MySQL模拟银行转账

  

今天在慕课网上学习了有关于python操作MySQL的相关知识,在此做些总结.python操作数据库还是相对比较简单的,由于python统一了各个数据库的接口程序,也就是所谓的python DB,所以无论使用何种数据可,都可以用统一的接口对数据库进行操作。操作中主要涉及连接对象的操作和游标的操作,前者主要是为了建立起python与数据库的数据交换通道,后者则是访问数据的游标,也可以理解为指针。数据库的相关结构化语言在python中均是以字符串的形式呈现的。另外注意回滚的重要性,一旦操作失败,所有操作都要回滚到之前的状态,否则会发生错误。

  

另外,在编写实例的时候,对于面向对象的编程思路又有了新的认识,自顶向下的程序编写模式非常有利于拆分程序的功能,分而治之。面向对象的封装性在此提醒的淋漓尽致!

  

代码如下,在原有基础上,我又增加了添加记录的功能。

        #=utf8编码   进口MySQLdb   导入系统      类TranseferMonet(对象):      康涅狄格州def __init__(自我):   自我。康涅狄格州=康涅狄格州      def createNewUser(自我,userID,钱):   光标=self.conn.cursor ()   试一试:   sql='插入帐户值(% s % s)的% (str (userID) str(钱))   cursor.execute (sql)   self.conn.commit ()   除了例外e:   self.conn.rollback ()   e      def transferMoney(自我、transeferID recivierID,钱):   试一试:   self.checkID (transeferID)   self.checkID (receiverID)   self.checkEnoughMoney (transferID钱)   self.subMoney (transferID钱)   self.addMoney (receiverID钱)   self.conn.commit ()   除了例外e:   self.conn.rollback ()   e      def checkID(自我,userID):   光标=self.conn.cursor ()   试一试:   sql='从帐户中选择userID userID=% s ' % str(标识)   cursor.execute (sql)   rs=cursor.fetchall ()   如果len (rs) !=1:   提高异常(“ID错误!”)   最后:   cursor.close ()      def checkEnoughMoney(自我、transferID钱):   光标=self.conn.cursor ()   试一试:   sql='选择钱从账户用户id=% s和金钱祝辞=% s ' % (str (transferID) str(钱))   cursor.execute (sql)   rs=cursor.fetchall ()   如果len (rs) !=1:   提高异常(“余额不足!”)   最后:   cursor.close ()   def subMoney(自我、transferID钱):   光标=self.conn.cursor ()   试一试:   sql='更新帐户设置=钱——用户id=% s ' % s % (str(钱),str (transferID))   cursor.execute (sql)   如果游标。rowcount !=1:   提高异常(“减款失败!”)   最后:   cursor.close ()      def addMoney(自我、receiverID钱):      光标=self.conn.cursor ()   试一试:   sql='更新帐户设置=钱+ % s userID=% s ' % (str(钱),str (receiverID))   cursor.execute (sql)   如果游标。rowcount !=1:   提高异常('加款失败!”)   最后:   cursor.close ()      if __name__==癬_main__”:      transferID=2002   receiverID=2001   钱=300      newID=2003   newmoney=900      康涅狄格州=MySQLdb。连接(主机=127.0.0.1,端口=3306,用户=?passwd=' 914767195 ', db=馐浴?charset=use utf8)      trMoney=TranseferMonet(康涅狄格州)      试一试:   trMoney.transferMoney (transferID receiverID,金钱)   除了例外e:   打印”转账错误" + str (e)   试一试:   trMoney.createNewUser (newID newmoney)   除了例外e:   打印”创建用户失败!”+ str (e)   最后:   conn.close ()      

,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python操作MySQL模拟银行转账