python工具之myql数据库操作
import pymysql
import config '''
1.0 简单封装
1.1 添加了insert_id属性,返回insert时返回的主键
1.2 添加了column属性,返回查询的column
1.3 添加一个insert
1.4 添加了一个insertList支持批量添加
''' class Db:
'''
数据库操作类
Attributes:
transactionFlag:是否开启事务
insert_id:insert时返回的主键
''' def __init__(self):
'''
insert_id:insert时返回的主键
'''
self.insert_id = 0
self.column = None def __init__(self, transactionFlag=False):
'''
transactionFlag:是否开启事务
insert_id:insert时返回的主键
'''
self.insert_id = 0
self.column = None
self.transFlag = transactionFlag
self.conn = pymysql.connect(host=config.host, port=config.port, user=config.user,
passwd=config.passwd, db=config.db, charset='utf8') def close():
'''
关闭连接
'''
self.conn.close() def execSql(self, sql, param=None):
'''
执行增删改语句,返回影响的行数
sql:要执行的sql
param:sql是的参数,默认值为None
'''
cursor = self.conn.cursor()
if param == None:
a = cursor.execute(sql)
else:
a = cursor.execute(sql, param)
self.insert_id = cursor.lastrowid
self.column = cursor.description
if self.transFlag == False:
self.commit()
return a def query(self, sql, param=None):
'''
执行查询语句
sql:要执行的sql
param:sql是的参数,默认值为None
'''
cursor = self.conn.cursor(pymysql.cursors.DictCursor)
if param == None:
cursor.execute(sql)
else:
cursor.execute(sql, param)
ret = cursor.fetchall()
self.column = cursor.description
cursor.close()
return ret def queryOne(self, sql, param=None):
'''
执行查询语句
sql:要执行的sql
param:sql是的参数,默认值为None
'''
cursor = self.conn.cursor(pymysql.cursors.DictCursor)
if param == None:
cursor.execute(sql)
else:
cursor.execute(sql, param)
ret = cursor.fetchone()
cursor.close()
return ret def insert(self, table, keyvalue):
'''
以键值对的方式添加数据,简化insert
'''
keylist = []
valuelist = []
for key, value in keyvalue.items():
keylist.append(key)
valuelist.append("'%s'" % value)
sql = "insert into %s(%s) values(%s)" % (
table, ','.join(keylist), ",".join(valuelist))
return self.execSql(sql) def insertList(self, table, keyvalueList):
'''
以键值对的方式添加数据,简化insert
'''
keylist = []
first = keyvalueList[0]
for key, value in first.items():
keylist.append(key)
sql = "insert into %s(%s) values" % (
table, ','.join(keylist))
valuelist = []
for kv in keyvalueList:
vlist = []
for k in keylist:
vlist.append("'%s'" % kv[k])
valuelist.append("(" + ','.join(vlist) + ")")
sql = sql + ",".join(valuelist)
return self.execSql(sql) def commit(self):
self.conn.commit() def rollback(self):
self.conn.rollback()
python工具之myql数据库操作的更多相关文章
- Python数据存储 — MySQL数据库操作
本地安装MySQL 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库. 安装参考:https://mp.csdn.net/postedit/8 ...
- Java常用工具类之数据库操作辅助类DBUtil.java
package com.qushida.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.be ...
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- R和python连接SQL sever 数据库操作
在R的使用中,为了方便提取数据, 我们经常要进行数据库进行操作,接下来我们尝试使用R进行连接数据. 这里我们使用R中的RODBC进行操作, 首先,我们需要先配置ODBC资源管理器 通过任务管理器或者w ...
- python 使用sqlalchemy进行数据库操作
sqlalchemy是python下一个著名的数据库orm库,可以方便地进行数据表创建.数据增删改查等操作 最详细的教程,见官方:https://docs.sqlalchemy.org 这里列举一些常 ...
- python sqlalchemy 进行 mysql 数据库操作
1. 进行mysql数据库的创建,如果已经存在,就相当于进行数据库的连接操作 from sqlalchemy import create_engine from sqlalchemy.ext.decl ...
- Python实战之MySQL数据库操作
1. 要想使Python可以操作MySQL数据库,首先需要安装MySQL-python包,在CentOS上可以使用一下命令来安装 $ sudo yum install MySQL-python 2. ...
- python 包之 redis 数据库操作教程
一.安装 redis 是一个 Key-Value 数据库 Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型 pip inst ...
- python - 接口自动化测试 - MysqlUtil - 数据库操作封装
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: mysql_util.py @ide: PyCharm C ...
随机推荐
- SpringBoot快速HelloWorld入门
1.新建maven项目 2.pom.xml 里添加SpringBoot所依赖的jar包 <parent> <groupId>org.springframework.boot&l ...
- MYSQL进阶学习笔记十:MySQL慢查询!(视频序号:进阶_23-24)
知识点十一:MySQL 慢查询的应用(23) 一.慢查询定义 MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询. 查看时间限制 show variables lik ...
- hdu 1400 Mondriaan's Dream 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1400 题目意思:给出一个h * w的 大 矩形,需要用 1 * 2 的砖块去填充这个大矩形,问填充的方 ...
- [Java] static, final
1.静态成员 静态成员独立于类的对象,先于对象的存在而存在.无论创建了类的多少个对象,静态成员都只有一个实例空间.一个静态变量被同一个类的所有对象共享.当改变了其中一个对象的静态变量时,其余对象的静态 ...
- react之fetch请求json数据
Fetch下载 npm install whatwg-fetch -S Fetch请求json数据 json文件要放在public内部才能被检索到
- USACO 奶牛排队
题目:给出一个只含有1,2,3的数字序列,问最少交换多少次才能将之变为递增数列. 解: 注意到只有1,2,3,我们只要将1,3交换到自己的应在位置上那么排序就已经完成了. 需要交换的有几种,记$a(x ...
- Table View Programming Guide for iOS---(一)---About Table Views in iOS Apps
About Table Views in iOS Apps Table views are versatile user interface objects frequently found in i ...
- Linux系统安装完的调整和安全
精简开机系统自启动 •五个企业环境中开机自启动的服务; sshd:远程连接linux服务器必须开启 rsyslog:日志相关软件 network:网络服务 crond:系统和用户配置的计划任务周期性进 ...
- gitbucket
github固然强大,但不怎么适合企业级的开发版本管理,原因相信大家都明白,首先在github上上传和拉取代码速度是比较慢的,再者,在Github上创建一个私有仓库是收费的,那么gitbucket是一 ...
- springboot redis工具类
package com.vv.boot.util; import java.util.List; import java.util.Map; import java.util.Set; import ...