本小鱼这个星期在学习MySQL数据库,完全是从零开始,从下载MySQL安装包,到MySQL的安装,到MySQL的基础知识的学习,到搭建数据库开发环境,一直到现在实现简单的实例。是一步一个脚印。
今天就由小鱼来和大家分享一个利用python来操作MySQL数据库的银行转账实例。
开发环境要求:电脑已安装MySQL软件(小鱼安装的是mysql-installer-community-5.7.20.0版本),安装MySQL图形化管理工具(小鱼安装的是Navicat),安装Python2.7,安装python-mysqlconnector插件(小鱼使用的是pymysql),安装python代码编辑器(小鱼使用的是eclipse+pydev,你们方便的话也可以使用pycharm,看个人喜好)。
python2.7的安装网上都有,当然有问题可以问我。
[mysql官网下载链接](https://dev.mysql.com/downloads/mysql/)
[Navicat安装包](http://pan.baidu.com/s/1jI3nV62)
下载python-mysql连接器插件(确定自己已安装python):
1、打开cmd
2、输入 pip install pymysql
3、等待下载就好
4、直接import pymysql看是否安装成功接下来小鱼假设你们环境都已搭建好,MySQL的基础知识也有,没有也不用怕,小鱼在后面的博客将介绍MySQL的基础知识。现在开始银行转账实例演示。首先分析银行转账流程:
开始事务->检查账户A和账户B是否可用—>检查账户A账户是否有足够金额,比如转出100元->账户A减去100,账户B加上100->提交事务流程分析完毕,开始编写代码。
1、pymysql中在test数据库下创建account数据表,有账户ID和余额两字段
USE test;
CREATE TABLE account (id TINYINT(3) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,acctid VARCHAR(10) NOT NULL COMMENT '账户id',money SMALLINT(10) DEFAULT NULL COMMENT '余额',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、在表中先写入两个字段
INSERT account(acctid,money) VALUES('A','110');
INSERT account(acctid,money) VALUES('B','110');
我们可以使用`SHOW * FROM account`查看表中内容。3、使用代码编辑器编写转账代码
import sys
import pymysql
class TransferMoney(object):def __init__(self,conn):self.conn=conndef transfer(self,source_acctid,target_acctid,money)try:self.check_acct_availiable(source_acctid)self.has_enough_money(target_acctid)self.reduce_money(source_acctid,money)self.add_money(target_acctid,money)self.conn.commit()except Exception as e:self.conn.rollback()raise e
if __name__=="__main__":source_acctid = sys.argv[1]target_acctid = sys.argv[2]money = sys.argv[3]conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='test',charset='utf8')tr_money=TransferMoney(conn)try:tr_money.transfer(source_acctid,target_acctid,money)except Exception as e:print "出现问题: "+str(e)finally:conn.close
到这里,框架已经搭建好了,现在只要将定义的函数编写就可以了。
小鱼这里只实现检测用户是否可用的函数,剩下的三个函数和这个函数差不多,大家可用自己尝试编一下,如果不会,或者有问题,可以和我一起讨论。
def check_acct_available(self,acctid):
cursor=self.conn.cursor()
try:sql="select * from account where acctid=%s" %acctidcuesor.execute(sql)print "check_acct_available: "+sqlrs=curson.fetchall()if len(rs)!=1:raise Exception("账号%s不存在" %acctid)finally:cursor.close
好啦,今天小鱼就分享到这啦,自己尝试编写一下后面的三个函数哦,有问题再讨论。

简单的MySQL银行转账实例相关推荐

  1. 超简单的mysql多实例布置

    一.基本概念 mysql下载:http://mirrors.sohu.com/mysql/MySQL-5.5/ 1.MySQL多实例 就是在一台机器上面开启多个不同的端口,运行多个MySQL服务进程. ...

  2. mysql多副本搭建_一个简单的MySQL多实例环境搭建

    安装mysql 初始化两个数据库目录 mysql_install_db --datadir=/usr/local/var/mysql1 --user=mysql mysql_install_db -- ...

  3. mysql多实例安装配置_MySQL多实例安装配置

    MySQL进行多实例配置再生产环境中非常常见,比如一些高配置数据库服务器,就会跑多个MySQL实例,借助多实例绑定的方式提高服务器的整体资源利用率.另外在MySQL5.7以上版本还不支持多源复制时,当 ...

  4. mysql服务实例配置_MySQL多实例配置(一)

    MySQL数据库的集中化运维,能够通过在一台MySQL数据库服务器上,部署多个MySQL实例.该功能是通过mysqld_multi来实现.mysqld_multi用于管理多个mysqld的服务进程,这 ...

  5. mysql 多实例应用配置部署指南

    一,Mysql 多实例的作用的问题 1,有效利用服务器的资源 当单个服务器资源有剩余的时候,可以充分利用剩余的资源以提供更多的服务 2,节约服务器的资源 当公司资源紧张,但是数据库各自需要独立提供服务 ...

  6. Python MySQLdb模块连接操作mysql数据库实例_python

    mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...

  7. mysql 多进程配置_基于mysql_multi实现MySQL多实例多进程配置

    环境设置 一台服务器配置IP为:192.168.200.111 主机名为:localhost 实验初始配置:关闭防火墙与selinux systemctl stop firewalld iptable ...

  8. mysql 多实例 独立配置文件_mysql 5.7 配置多实例 — 独立配置文件方式

    使用独立配置文件来实现 mysql 的单机多实例 一下教程皆以已在 /usr/local 下安装了 mysql 为说明 我们将在原 3306 实例的基础上新建 3307 和 3308 两个实例 1.创 ...

  9. AJAX for Java简单表数据查询实例

    AJAX for Java简单表数据查询实例<?XML:NAMESPACE PREFIX = O /> AJAX WebShop 3对Java开发具有良好的支持,同时也提供了各种层次的后台 ...

最新文章

  1. 大数据处理平台与案例
  2. [导入]ASP.NET 2.0 读取配置文件[INI](示例代码下载)
  3. python查看图片的源代码_python获取图片元数据的代码
  4. 分解例题_2020年中考数学考点之利用平方差公式进行因式分解习题练习
  5. MySQl:子查询和关联查询哪个效率高
  6. 技术管理之巅-如何从零打造高质效互联网技术团队?
  7. 以“人民的名义”劝你快去读点书
  8. html5人脸拼图,力荐10大拼图App 玩转拼图分享美好生活
  9. dparsf是什么_老师,我用DPARSF做Slice Timeing时老报错,请问您是什么原因呢?
  10. 【超详细】全国大学生软件测试大赛:移动应用测试参赛指南
  11. 大数据行业现在工作很难找吗?
  12. TCP协议-TCP连接管理
  13. 网络常用密码忘记破解方法
  14. 关闭eclipse控制台console中的非Java Server(ESLint、Angular Language Server等)
  15. 惠普WS10 Pro音响旋钮灯效去除
  16. 切换cuda版本之后/usr/local/cuda/lib64找不到的问题
  17. 桌面计算机里哪个是d盘,电脑桌面是c盘还是d盘
  18. 图片噪声 降噪 边缘检测
  19. mysql使用max函数+将类似123的字符型数据转换成数据类型
  20. Android数据传输之Parcelable

热门文章

  1. Visio双击形状编辑文字
  2. android游戏翻译,百度翻译(Android)v2.5官方版最好的翻译官
  3. 西门子污水处理程序西门子Wincc+S7-300污水处理大项目
  4. 计算机主板上的cmos芯片的主要用途是,cmos芯片的作用及主要用途
  5. 【算法导论-35】图算法JGraphT开源库介绍
  6. <笔试> 回转寿司题解 动态规划
  7. 把搜狗输入法词库导入Google拼音输入法
  8. SC662K 输入6V 输出3.3V 250mA 线性LDO
  9. 电脑桌面便签怎么设置待办事项完成删除或完成隐藏?
  10. 题解洛谷1179数字统计 记录问题