Python3 pymysql 访问MySql数据库

使用pymysql来访问MySQL数据库,注意,有些使用PyMySQL,Python2是mysqldb

如没该module则安装:pip install pymysql

(本人Java转Python,还有java编写习惯,有错误请及时提出,相互交流)

1、定义获取数据库连接的Module,

DataBase.py

import pymysql

class MySQLDB:
    __config={
    ‘host‘ : ‘127.0.0.1‘,
    ‘port‘ : 3306,
    ‘user‘ : ‘root‘,
    ‘password‘ : ‘admin‘,
    ‘db‘ : ‘test‘,
    ‘charset‘ : ‘utf8‘
    }
    #定义了静态方法,类名可直接打点调用
    @staticmethod
    def getConn():
        connection = pymysql.connect(**MySQLDB.__config)
        return connection

2、EmpDao.py 访问数据DAO层

 1 from dataBase import DataBase
 2 from dataBase import Entity
 3
 4 class EmpDao:
 5     ‘‘‘
 6     emp表的DAO
 7     ‘‘‘
 8     def saveEmp(self,empEntity):
 9         """
10         保存
11         """
12         try:
13             self.connection=DataBase.MySQLDB.getConn();#获取数据库连接
14             with self.connection.cursor() as cursor: #获取游标
15                 sql = ‘INSERT INTO emp (empno,ename,mgr,job,hiredate,sal,comm,deptno) VALUES (%s, %s, %s, %s, %s,%s,%s,%s)‘
16                 cursor.execute(sql, empEntity) #执行SQL
17                 self.connection.commit() #提交事务
18         except Exception as e:
19             print(e) #打印异常
20         finally:
21             self.connection.close()#关闭数据库连接
22
23
24     def selectEmp(self,sqlParam):
25         """
26         条件查询
27         """
28         try:
29             self.connection = DataBase.MySQLDB.getConn();
30             with self.connection.cursor() as cursor:
31                 sql=‘select empno,ename,job,mgr,sal,comm,hiredate,deptno from emp where 1=1  ‘
32                 if sqlParam:
33                     sql=sql+‘ %s ‘%(sqlParam) #插入条件sql片段
34                 print(sql)
35                 cursor.execute(sql)
36                 self.rows = cursor.fetchall()#抓取行数据
37         except Exception as e:
38              print(e)
39         finally:
40             self.connection.close()
41         return self.rows
42
43
44     def selectRowCount(self,sqlParam):
45         """
46         查询总记录数
47         """
48         try:
49             self.connection=DataBase.MySQLDB.getConn()
50             with self.connection.cursor() as cursor:
51                 sql=‘select count(empno) from emp where 1=1 ‘
52                 if sqlParam:
53                     sql=sql+‘%s‘%(sqlParam)#sql条件片段
54                 print(sql)
55                 cursor.execute(sql)
56                 self.rows=cursor.fetchall()
57         except Exception as e:
58             print(e)
59         finally:
60             self.connection.close()
61         return self.rows[0][0]
62
63
64     def selectRowsPaper(self,sqlParam=None,pageNow=1,pageSize=5):
65         """
66         分页查询
67         """
68         self.pageNow=pageNow
69         self.pageSize=pageSize
70         self.offset=(self.pageNow-1)*self.pageSize #偏移量
71         self.total=self.selectRowCount(sqlParam)#总记录数
72         #总页数
73         self.totalPage= int(self.total/self.pageSize)  if self.total%self.pageSize==0 else int(self.total/self.pageSize) +1
74
75         try:
76             self.connection = DataBase.MySQLDB.getConn()
77             with self.connection.cursor() as cursor:
78                 sql = ‘select  empno,ename,job,mgr,sal,comm,hiredate,deptno from emp where 1=1 ‘
79                 if sqlParam:
80                     sql = sql + ‘%s‘ % (sqlParam)
81                 sql=sql+‘ limit %s,%s‘%(self.offset,self.pageSize)
82                 print(sql)
83                 cursor.execute(sql)
84                 self.rows = cursor.fetchall()
85                 return {‘total‘:self.total,‘pageNow‘:self.pageNow,‘totalPage‘:self.totalPage,‘rows‘:self.rows}
86         except Exception as e:
87             print(e)

3、测试

(1)新增

1 if __name__ == ‘__main__‘:
2     empDao =EmpDao()
3     empDao.saveEmp((116, ‘ZYG‘, 7989, ‘Teacher‘, ‘1999-10-10‘, 23000, None, 20))

(2)分页查询

if __name__ == ‘__main__‘:
    empDao =EmpDao()
    #分页查询
    res=empDao.selectRowsPaper(pageNow=2)
    print(res)
    s=res[‘rows‘]
    for r in s:
        print(‘编号:%s,姓名:%s,入职日期:%s,工资:%s,部门:%s‘ % (r[0], r[1], r[6], r[4], r[7]))

原文地址:https://www.cnblogs.com/ygzhaof/p/9712805.html

时间: 2024-10-08 13:08:59

Python3 pymysql 访问MySql数据库的相关文章

Python3 pymysql连接MySQL数据库

#!/usr/bin/python # -*- coding:utf8 -*- import pymysql #取得数据库连接对象 conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='1234',db='python') #取得游标对象 cur = conn.cursor() #插入数据 cur.execute("INSERT INTO student(name,sex,age) VALUES('3', '0

python3.4怎么连接mysql pymysql连接mysql数据库

本文介绍了python3 4连接mysql数据库的方法,在python3 4中使用原来python2 7的mysqldb已不能连接mysql数据库了,可以使用pymysql. 在python3.4中使用原来python2.7的mysqldb已不能连接mysql数据库了,可以使用pymysql,来完成连接mysql的重任. 具体步骤: 序号 描述1 去github上下载pymysql的安装包pymysql https://github.com/PyMySQL/PyMySQL2 解压到某个盘符下3 

python3.4连接mysql数据库的方法

python3.4连接mysql数据库的方法 发布时间:2014-08-04编辑:www.jbxue.com 本文介绍了python3.4连接mysql数据库的方法,在python3.4中不能用mysqldb连接mysql,可以使用pymysql完成连接mysql数据库,需要的朋友参考下. 在python3.4中用原来python2.7的mysqldb已不能连接mysql数据库了. 喜欢mysqldb的朋友,可以参考: Python实例 mysqldb操作数据库 python MySQLdb操作

关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作

PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","","0710_test"); //写SQL语句$sql = "select * from student";//检测连接数据库是否成功,失败返回"连接失败",并退出程序 if(mysqli_connect_error()){    die("连

用python3.x与mysql数据库构建简单的爬虫系统(转)

这是在博客园的第一篇文章,由于本人还是一个编程菜鸟,也写不出那些高大上的牛逼文章,这篇文章就是对自己这段时间学习python的一个总结吧. 众所周知python是一门对初学编程的人相当友好的编程语言,就像本屌丝一样,一学就对它产生好感了!当然,想要精通它还有很多东西需要学习.那废话不多说了,下面我就来说一下如何用python3.x与mysql数据库构建一个简单的爬虫系统(其实就是把从网页上爬下来的内容存储到mysql数据库中). 首先就是搭建环境了,这里就简介绍一下我的环境吧.本机的操作系统是w

[JavaWeb基础] 003.JAVA访问Mysql数据库

上面两篇讲解了简单的JSP + Servlet的搭建和请求,那么后面我们肯定要用到数据交互,也就是操纵数据库的数据,包括对数字的增加,删除,修改,查询.我们就用简单的MySql来做例子 我们需要引入驱动包mysql-connector-java.jar,自行去网上下载,有很多. 下面我跟着代码看看怎么进行增删改查 1.打开数据库 // 驱动程序名 private String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名scutc

Python访问MySQL数据库

#encoding: utf-8 import mysql.connector __author__ = 'Administrator' config={'host':'127.0.0.1',#默认127.0.0.1 'user':'root', 'password':'root', 'port':3306 ,#默认即为3306 'database':'test', 'charset':'utf8'#默认即为utf8 } if __name__=="__main__": print(c

mysql的安装、C++访问mysql数据库、编码设置问题

一.mysql的安装,这个相对简单,直接去官网下载mysql安装程序,就可以完成安装过程,网上有很多安装教程,这个没什么注意事项. 二.C++访问mysql,主要是用到mysql定义的头文件,内部定义了各种数据结构和函数,比如MYSQL,MYSQL_RES,MYSQL_ROW,mysql_real_connect等等一系列的结构和函数.这里要注意的就是将头文件及lib文件以及dll文件配置到当前开发环境来进行访问mysql数据库. 以最新的vs2013作为示例说一下配置过程.为了写的清晰点,在网

PHP访问MySQL数据库

第9章 PHP访问MySQL数据库 1.  PHP访问MySQL数据库服务器的流程 之前学习mysql的时候,采用的是"客户机/服务器"的体系结构 mysql>select * from a;    -------->MySQL数据库服务器 < --------- PHP访问MySQL数据库的时候,我们的PHP则充当了客户机的角色 PHP充当了客户机的角色----------->MySQL数据库服务器 <----------- 接下来我们可以通过phpin