python操作mysql数据库增删改查的dbutils实例

# 数据库配置文件

# cat gconf.py

#encoding=utf-8
import json
# json里面的字典不能用单引号,一定要用双引号
USER_FILE='users.json' # mysql数据库连接信息
MYSQL_HOST = '192.168.3.91'
MYSQL_PORT = 3306
MYSQL_USER = 'root'
MYSQL_PASSWORD = 'root'
MYSQL_DB = 'cmdb'
MYSQL_CHARSET = 'utf8' # 邮件发送的信息
SMTP_SERVER_HOST='smtp.exmail.qq.com'
SMTP_SERVER_PORT=25
SMTP_USER='jack@qq.com'
# 邮箱客户端专用密码
SMTP_PWD='pass' # 接收邮件
ALARM_RECIVE = ['admin@163.com'] # app验证信息
APP_KEY = 'adI23SaE926DSslieo'
APP_SECRET = 'adI23SaE926DSslieo'

# 操作数据库增删改查的dbutils.py代码

#encoding=utf-8

import MySQLdb

import gconf

# 主类
class MysqlConnection(object):
def __init__(self, host, port, user, passwd, db, charset='utf8'):
self.__host = host
self.__port = port
self.__user = user
self.__passwd = passwd
self.__db = db
self.__charset = charset
self.__conn = None
self.__cur = None
self.__connect()
# 连接数据库
def __connect(self):
try:
self.__conn = MySQLdb.connect(host = self.__host, port = self.__port,\
user = self.__user, passwd = self.__passwd,\
db = self.__db, charset = self.__charset) self.__cur = self.__conn.cursor()
except BaseException as e:
print e def close(self):
# 在关闭连接之前将内存中的文件写入磁盘
self.commit()
if self.__cur:
self.__cur.close()
self.__cur = None if self.__conn:
self.__conn.close()
self.__conn = None
# 设置提交
def commit(self):
if self.__conn:
self.__conn.commit() def execute(self, sql, args = ()):
_cnt = 0
if self.__cur:
self.__cur.execute(sql, args)
return _cnt def fetch(self, sql, args = ()):
_cnt = 0
rt_list = []
# _cnt = self.execute(sql, args)
if self.__cur: _cnt = self.__cur.execute(sql, args)
rt_list = self.__cur.fetchall()
return _cnt, rt_list @classmethod
def execute_sql(cls, sql, args=(), fetch = True):
count = 0
rt_list = []
conn = MysqlConnection(host = gconf.MYSQL_HOST, port = gconf.MYSQL_PORT,\
user = gconf.MYSQL_USER, passwd = gconf.MYSQL_PASSWORD, db = gconf.MYSQL_DB,\
charset = gconf.MYSQL_CHARSET)
print sql
if fetch:
count, rt_list = conn.fetch(sql, args)
else:
count = conn.execute(sql, args)
conn.close()
print rt_list
return count, rt_list def execute_fetch_sql(sql, args = (), fetch = True):
return execute_sql(sql, args, fetch) def execute_commit_sql(sql, args = (), fetch = False):
return execute_sql(sql, args, fetch) # 区别在于是查询还是修改,增加,删除操作,用fetch来标识
def execute_sql(sql, args = (), fetch = True):
cur = None
conn = None
count = 0
rt = ()
try:
conn = MySQLdb.connect(host = gconf.MYSQL_HOST, port = gconf.MYSQL_PORT,\
user = gconf.MYSQL_USER, passwd = gconf.MYSQL_PASSWORD, db = gconf.MYSQL_DB,\
charset = gconf.MYSQL_CHARSET) cur = conn.cursor()
print 'dbutils sql:%s, args = %s' % (sql, args)
count = cur.execute(sql, args)
# 如果是查询
if fetch:
rt = cur.fetchall()
# if args:
# rt = cur.fetchone()
# else:
# rt = cur.fetchall()
else:
conn.commit() except BaseException, e:
print e
finally:
if cur:
cur.close()
if conn:
conn.close()
print 'dbutils:%s,%s' %(count,rt)
return count,rt # 批量插入数据库
def batch_execute_sql(sql, rt_list = []):
cur = None
conn = None
count = 0
rt = () try:
conn = MySQLdb.connect(host = gconf.MYSQL_HOST, port = gconf.MYSQL_PORT,\
user = gconf.MYSQL_USER, passwd = gconf.MYSQL_PASSWORD, db = gconf.MYSQL_DB,\
charset = gconf.MYSQL_CHARSET) cur = conn.cursor()
print sql
# 循环执行插入语句,一次性全部提交
for line in rt_list:
count += cur.execute(sql, line)
conn.commit() except BaseException, e:
print e
finally:
if cur:
cur.close()
if conn:
conn.close() return count # 测试代码
if __name__ == '__main__':
# conn = MysqlConnection(host = gconf.MYSQL_HOST, port = gconf.MYSQL_PORT,\
# user = gconf.MYSQL_USER, passwd = gconf.MYSQL_PASSWORD, db = gconf.MYSQL_DB,\
# charset = gconf.MYSQL_CHARSET) # # conn.execute('insert into user(username) values(%s)', ('jack123',))
# cnt, rt_list = conn.fetch('select * from user')
# print cnt,rt_list
# conn.close()
count, rt_list = MysqlConnection.execute_sql('insert into user(username) values(%s)',('tomkeeper',))
print rt_list

python操作mysql数据库增删改查的dbutils实例的更多相关文章

  1. Asp.Net操作MySql数据库增删改查

    Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git  1.安装MySQL数据库 ...

  2. Python实现mysql数据库增删改查

    利用python操作mysql数据库用法简单,环境配置容易,本文将实现对库增.删.改.查的简易封装!   1. 环境配置 安装第三方包  ,导入模块 mysql.connector  pip inst ...

  3. python2.7入门---操作mysql数据库增删改查

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口.Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: G ...

  4. Golang原生sql操作Mysql数据库增删改查

    Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用. 首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动 ...

  5. python3操作mysql数据库增删改查

    #!/usr/bin/python3 import pymysql import types db=pymysql.connect("localhost","root&q ...

  6. python操作mysql之增删改查

    [insert] import MySQLdb conn = MySQLdb.connect(","08day5" ) cur = conn.cursor() #把数据放 ...

  7. MySQL数据库(增删改查语句)

    MySQL数据库(增删改查语句)一.登录数据库:---->  mysql -uroot -proot;(对应用户名和密码)二.SQL语句:    数据定义语言DDL  用来定义数据库.表.列,关 ...

  8. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  9. jsp-2 简单的servlet连接mysql数据库 增删改查

    连接mysql数据库的操作 有增删改查 用的包有 commons-lang3-3.5 mysql-connector-java-5.1.40-bin 但是实际上也就是 数据查询和数据处理两种 所以对数 ...

随机推荐

  1. 如何计算UDP/TCP检验和checksum

    如何计算UDP/TCP检验和checksum 一.下面的图是一个UDP的检验和所需要用到的所有信息,包括三个部分:1.UDP伪首部2.UDP首部3.UDP的数据部分(切记不要遗漏该部分,否则就~吐血了 ...

  2. PHP7 学习笔记(十二)gRPC

    GitHub:https://github.com/grpc/grpc/tree/master/src/php 环境:Linux + php7 1.安装grpc pecl install grpc 编 ...

  3. HTTP.SYS远程执行代码漏洞分析 (MS15-034 )

    写在前言:   在2015年4月安全补丁日,微软发布了11项安全更新,共修复了包括Microsoft Windows.Internet Explorer.Office..NET Framework.S ...

  4. 【bzoj 1901】Zju2112 Dynamic Rankings

    Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是 ...

  5. PHP中的会话控制—session和cookie(实现数据传值功能)

    1.session  登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器:   (2)session每个人(登陆者)存一份: (3)session ...

  6. C# test

    //测试对象集合序列化 public void jsonTest() { List<moduleEntity> list = new List<moduleEntity>(); ...

  7. 配置mongo

    Windows 平台安装 MongoDB MongoDB 下载 MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...

  8. 《从Paxos到Zookeeper:分布式一致性原理与实践》第一章读书笔记

    第一章主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID.CAP和BASE等经典分布式理论,主要包含以下内容: 集中式的特点 分布式的特点 分布式环境的各种问题 ACI ...

  9. hibernate多表操作

    一.表之间的关系 1.一对一 2.一对多 3.多对多 二.表之间关系建表原则 1.一对多:在多的一方创建一个外键,指向一的一方的主键 2.多对多:创建一个中间表,中间表至少有两个字段,分别作为外键指向 ...

  10. 【报错】java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession

    报错 java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession 或者 java.lang.ClassNotFound ...