pythonmysqlconnector_python操作mysql——mysql.connector
# -*- coding: UTF-8 -*-import mysql.connectorclassTransferMoney():
def __init__(self, db):
self.db=db
#转账流程
def transferMoney(self, id, targetId, money):try:
self.checkTargetUser(targetId) #检查被转账账号是否存在
self.checkMoney(id, money) #检查余额是否足够
self.transfer(id, targetId, money) #转账
self.db.commit() #提交修改
except Exceptionase:
self.db.rollback() #回滚事物
raise e
#检查被转账账号是否存在
def checkTargetUser(self, id):try:
cursor=self.db.cursor()
sql_query= 'select * from user where id=%s;' %id
cursor.execute(sql_query)
rs=cursor.fetchall()if len(rs) != 1:
raise Exception('转账账户不存在!')else:
print'转账账户存在!'except mysql.connector.Errorase:
raise Exception('检查被转账账户是否存在出错:' +str(e))finally:
cursor.close()
#检查转账金额
def checkMoney(self, id, money):try:
cursor=self.db.cursor()
sql_query= 'select * from user where id=%s and money > %s;' %(id,money)
cursor.execute(sql_query)
rs=cursor.fetchall()if len(rs) != 1:
raise Exception('转账账户余额不足!')else:
print'转账方金额充足!'except mysql.connector.Errorase:
raise Exception('检查金额出错::' +str(e))finally:
cursor.close()
#转账
def transfer(self, id, targetId, money):try:
cursor=self.db.cursor()
#自己先减去转账金额
sql_query= 'update user set money=money-%s where id=%s;' %(money,id)
rs=cursor.execute(sql_query)if cursor.rowcount != 1:
raise Exception('账号%s减款失败!' %id)
#目标账户加上转账金额
sql_query1= 'update user set money=money+%s where id=%s;' %(money, targetId)
cursor.execute(sql_query1)if cursor.rowcount != 1:
raise Exception('账号%s加款失败!' %targetId)
print'成功转账%s元!' %money
except mysql.connector.Errorase:
raise Exception('转账出错:' +str(e))finally:
cursor.close()if __name__ == '__main__':
db= mysql.connector.connect(host='127.0.0.1',port=3306,user='root',passwd='gou110422',database='test',charset='utf8')base =TransferMoney(db)try:
id,targetId,money= (1,2,100)base.transferMoney(id, targetId, money)
except Exceptionase:
print'异常:',efinally:
db.close()
#cursor.execute执行sql 语句
#cursor.rowcount 表中受影响数据个数 放在execute()之后
#fetchall() 获取所有数据
#fetchone() 获取一条数据
#fetchmany(3) 获取 3个数据
#db.commit() 数据表内容有更新,必须使用到该语句#cursor.close() #关闭游标
pythonmysqlconnector_python操作mysql——mysql.connector相关推荐
- [Python]Python操作/管理Mysql学习(一)
先确定环境是否已支持MySQLdb模块,如果没有,请安装,如下: [root@bw-vm-soft ~]# wget http://jaist.dl.sourceforge.net/project/m ...
- mysql binary mode_mysql二进制文件操作语法(mysql binary log operate statements)
在 mysql 配置文件中配置 log-bin,重启 mysql my.cnf (on Linux/unix) or my.ini (on Windows) 例子: [client] ... [mys ...
- windows+mysql+解压版_Windows操作系统安装MySQL解压版
1.下载MySQL版本: MySQL Community Server 2.解压安装包 解压下载的安装包,放到电脑的安装目录下 3.配置my.ini文件 解压后,根目录下,有一个my-default. ...
- centos8.2安装mysql_为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8为例
在本文中,我们将向你展示如何在CentOS 8操作系统上安装MySQL 8.0,可从默认的CentOS 8存储库中安装最新版本的MySQL数据库服务器8.0版,CentOS 8还提供了MariaDB ...
- c mysql二进制,MySQL运用connector C/C+读取二进制字段
MySQL使用connector C/C+读取二进制字段 MySQL使用connector C/C+读取二进制字段,两种方法: 用getString vector vec; while (pResul ...
- python 多人连接mysql 进行事务操作 对mysql加锁与释放锁
python 多人连接mysql 对mysql进行事务操作 对mysql加锁与释放锁 下面这个是user1代码块 # -*- coding: utf-8 -*- # user1 import pymy ...
- 3.认识和操作一下mysql的基本命令
3.认识和操作一下mysql的基本命令 登录mysql,在终端输入以下命令,进行登录 mysql -u root -pMacBook-Pro:~ yc$ mysql -u root -pEnter p ...
- chown –r mysql:mysql,mysql部署,操作及异常处理
1.将mysql-5.1.50-linux-x86_64-glibc23.tar.gz移至/usr/local/目录下,并改名为mysql 增加mysql组 #groupadd mysql 建mysq ...
- jdbc操作演示 mysql
jdbc操作演示 mysql 新建目录 项目中新建目录用于存放mysql的驱动jar包 把驱动拷备进来 设置目录为库目录 在目录上右击 然后选择 演示代码 import java.sql.Connec ...
- mysql和python先学哪个_Python数据库操作 初识mysql和mysql基本操作#学习猿地
# 3.认识和操作一下mysql的基本命令 #### 登录mysql,在终端输入以下命令,进行登录 `mysql -u root -p` ```sql MacBook-Pro:~ yc$ mysql ...
最新文章
- 个人站立会议(11月24日)
- [转]MIPS 下非对齐访问的问题
- Qt——消息对话框的设计
- 计算机领域CCF推荐会议列表+
- 双线性映射:零知识证明的引擎
- 『搬运』分享一些国内外的专利搜索网站
- 词根词缀的实践应用 - 词根词缀词典墨墨详细使用
- 期权定价Python实现
- 怎么在WORD2016里给文档空白处添加下划线,干货在这里,WORD2016空白处如何添加下划线
- 【计算机网络】---局域网
- idea svn update 时不弹出选择分支的对话框,don't show this dialog in the furture解决方案
- vue-echarts绘制地图轮廓
- 详解ShellShock 漏洞复现原理,内附ShellShock的修复方法
- 《 观沧海》 《忆秦娥 · 娄山关 》
- [css] scale
- ZTree学习(三),ztree树扩展
- ESP8266 WIFI模块学习之路(2)——模块与单片机连接进行远程操作
- Custom Windows workflow Desiger 自定义Windows工作流设计器
- 计算机进入桌面黑屏怎么办,老司机教你电脑进入系统后黑屏怎么办
- 关于区块链共识类型:PoW, PoS, DPoS, PoST的解释
热门文章
- C#DateTime的用法
- WCF与ASMX Web服务差异比较[译]
- 现实世界的Windows Azure:就Metanga采访MetraTech公司CEO,Scott Swartz先生
- Silverlight 2 DataGrid December 2008
- [原创]如何在Windows XP 中利用监视计算机中的资源使用情况
- .net 时间操作(datetime数据类型,datetime方法)
- C#设计模式学习(类型对象模式)
- 8年软件测试工程师感悟:与薪资相匹配的永远是实力
- Jmeter的Throughput有误差与分布式测试时的坑
- 对C语言实验报告的建议,c语言实验报告.docx