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 ...
随机推荐
- spring cloud 启动报错-must be declared as an @AliasFor [serviceId], not [name].
项目加入FeignClient后再启动就报错,具体报错信息如下: org.springframework.core.annotation.AnnotationConfigurationExceptio ...
- noi2014魔法森林
为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐 士.魔法森林可以被看成一个包含
- 栏目抓取网站日kafka
#!/usr/bin/python3#-*- coding:utf-8 -*-"""create 2018-02-27author zldesc: https://ind ...
- silverlight 图片引入代码
private void comboBox2_SelectionChanged(object sender, SelectionChangedEventArgs e) { string str = t ...
- HDUoj4857逃生 拓扑排序
逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- CodeForces979D:Kuro and GCD and XOR and SUM(Trie树&指针&Xor)
Kuro is currently playing an educational game about numbers. The game focuses on the greatest common ...
- SPOJ:Eagle and Dogs(求树上每个点最远可以走到哪里---树的直径||DP)
Eagle (AKA Mohamed Ahmed) lives in a city consists of n intersections connected by n-1 roads, in a w ...
- 数据库备份脚本.sh
#!/bin/bash #auto bakcup mysql db BAK_DIR=/data/backup/mysql/`date +%Y-%m-%d` MYSQL_DB=数据库名 MYSQL_PW ...
- #ifndef <标识> #define <标识> #endif
头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都include了同一个头文件.而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突. 还是把 ...
- python的time模块使用
在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: ...