Python3实现的Mysql数据库操作封装类
本文主要介绍了如何使用Python3实现Mysql数据库的基本操作,封装一个操作Mysql数据库的类。该类可以完成数据库的增、删、改、查等操作,使用方法简单方便。
环境准备
在使用本封装类之前,需要先安装好Mysql数据库,以及相应的Python Mysql库。可以通过下面的命令进行安装:
pip install pymysql
操作封装类的实现
操作封装类的核心是将Mysql数据库操作的基本方法,封装到一个类里面。本文使用了Python的面向对象编程技术,定义了一个Mysql类,提供了数据库的增、删、改、查等操作方法。以下是封装类的核心代码:
import pymysql
class Mysql(object):
def __init__(self, host=None, port=None, user=None, password=None, db=None, charset=None):
'''
初始化方法
'''
self.host = host or 'localhost'
self.port = port or 3306
self.user = user or 'root'
self.password = password or 'password'
self.db = db or 'test'
self.charset = charset or 'utf8mb4'
self.conn = None
self.cursor = None
def __enter__(self):
'''
实现with语句需要的方法
'''
return self.connect()
def __exit__(self, exc_type, exc_val, exc_tb):
'''
实现with语句需要的方法
'''
self.close()
def connect(self):
'''
连接数据库方法
'''
self.conn = pymysql.connect(
host=self.host,
port=self.port,
user=self.user,
password=self.password,
db=self.db,
charset=self.charset,
cursorclass=pymysql.cursors.DictCursor
)
self.cursor = self.conn.cursor()
return self
def close(self):
'''
关闭数据库连接方法
'''
if self.cursor:
self.cursor.close()
if self.conn:
self.conn.close()
return self
def commit(self):
'''
提交事务方法
'''
self.conn.commit()
return self
def rollback(self):
'''
回滚事务方法
'''
self.conn.rollback()
return self
# select查询语句
def select(self, table_name, where=None, fields=None, limit=None, order_by=None):
fields = fields or '*'
sql = 'SELECT %s FROM `%s`' % (fields, table_name)
if where:
sql += ' WHERE %s' % where
if order_by:
sql += ' ORDER BY %s' % order_by
if limit:
sql += ' LIMIT %s' % limit
self.cursor.execute(sql)
return self.cursor.fetchall()
# insert插入语句
def insert(self, table_name, data):
fields = ','.join(data.keys())
values = ','.join(['"%s"' % v for v in data.values()])
sql = 'INSERT INTO `%s` (%s) VALUES (%s)' % (table_name, fields, values)
try:
self.cursor.execute(sql)
self.commit()
return self.cursor.lastrowid
except:
self.rollback()
# update更新语句
def update(self, table_name, data, where=None):
values = ','.join(['%s="%s"' % (k, v) for k, v in data.items()])
sql = 'UPDATE `%s` SET %s' % (table_name, values)
if where:
sql += ' WHERE %s' % where
try:
self.cursor.execute(sql)
self.commit()
return self.cursor.rowcount
except:
self.rollback()
# delete删除语句
def delete(self, table_name, where=None):
sql = 'DELETE FROM `%s`' % table_name
if where:
sql += ' WHERE %s' % where
try:
self.cursor.execute(sql)
self.commit()
return self.cursor.rowcount
except:
self.rollback()
代码说明:
- 初始化方法:设置了数据库的连接参数,创建连接和游标对象。
- enter()和__exit__()方法:用于实现上下文管理器,可以使用with语句连接和关闭数据库。
- connect()和close()方法:连接和关闭数据库。
- commit()和rollback()方法:提交和回滚事务。
- select()方法:查询操作。
- insert()方法:插入操作。
- update()方法:更新操作。
- delete()方法:删除操作。
示例用法
下面来看2个使用该封装类的简单示例。
示例1:查询数据
from mysql import Mysql
if __name__ == '__main__':
with Mysql(db='test') as mysql:
result = mysql.select('user', where='status=1', limit=10)
for row in result:
print(row)
执行以上代码可以查询user
表的前10条记录。
示例2:插入数据
from mysql import Mysql
if __name__ == '__main__':
data = {
'name': '张三',
'age': 18,
'status': 1
}
with Mysql(db='test') as mysql:
mysql.insert('user', data)
执行以上代码可以插入一条新记录到user
表中。
总结
本文介绍了如何使用Python3封装Mysql数据库的基本操作,提供了一个操作Mysql的封装类,可以实现数据库增、删、改、查等通用操作。示例代码也展示了如何使用该封装类进行数据库操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3实现的Mysql数据库操作封装类 - Python技术站