pymysql工具类封装详解
2023-12-26 14:39:56
在Python中,我们经常需要与数据库进行交互,而pymysql是一个常用的库,用于连接MySQL数据库。为了提高开发效率,我们可以将常用的数据库操作封装成一个工具类。本文将详细介绍如何编写一个pymysql工具类,并解释每个字段的作用。
首先,我们需要导入pymysql库和日志模块。pymysql库用于连接MySQL数据库,而日志模块用于记录程序运行过程中的信息。
import pymysql
from utils.LogUtil import tester_log
接下来,我们定义一个名为Mysql的类,用于封装数据库操作。在这个类中,我们定义了以下方法:
- init:初始化方法,用于创建数据库连接和游标对象。
- fetchone:执行SQL语句,获取一条数据。
- fetchall:执行SQL语句,获取所有数据。
- exec:执行SQL语句,提交事务。如果发生异常,则回滚事务并记录错误日志。
- del:析构方法,用于关闭游标和连接。
下面是Mysql类的完整代码:
class Mysql:
def __init__(self, host, user, password, database, port=3306, charset='utf8mb4'):
# 初始化日志对象
self.log = tester_log("AssertUil")
# 连接数据库
self.conn = pymysql.connect(
host=host,
user=user,
password=password,
database=database,
port=port,
charset=charset
)
# 创建游标对象
self.cursor = self.conn.cursor()
def fetchone(self, sql):
# 执行SQL语句,获取一条数据
self.cursor.execute(sql)
return self.cursor.fetchone()
def fetchall(self, sql):
# 执行SQL语句,获取所有数据
self.cursor.execute(sql)
return self.cursor.fetchall()
def exec(self, sql):
try:
# 如果连接和游标存在,执行SQL语句并提交事务
if self.conn and self.cursor:
self.cursor.execute(sql)
self.conn.commit()
except Exception as ex:
# 如果发生异常,回滚事务并记录错误日志
self.conn.rollback()
self.log.error("Mysql 执行失败")
self.log.error(ex)
return False
return True
def __del__(self):
# 关闭游标和连接
if self.cursor is not None:
self.cursor.close()
if self.conn is not None:
self.conn.close()
现在我们来解释一下每个字段的作用:
- log:日志对象,用于记录程序运行过程中的信息。在这里,我们使用了一个名为tester_log的函数来创建一个日志对象。这个函数接收一个字符串参数,表示日志的名称。
- conn:数据库连接对象,用于连接MySQL数据库。在这里,我们使用pymysql库的connect函数来创建一个连接对象。这个函数接收多个参数,包括主机地址、用户名、密码、数据库名、端口号和字符集等。
- cursor:游标对象,用于执行SQL语句和获取查询结果。在这里,我们使用数据库连接对象的cursor方法来创建一个游标对象。游标对象有两个主要方法:execute和fetchone/fetchall。execute方法用于执行SQL语句,fetchone方法用于获取一条查询结果,fetchall方法用于获取所有查询结果。
- host:数据库主机地址。这是连接到MySQL数据库所需的信息之一。
- user:数据库用户名。这是连接到MySQL数据库所需的信息之一。
- password:数据库密码。这是连接到MySQL数据库所需的信息之一。
- database:要连接的数据库名称。这是连接到MySQL数据库所需的信息之一。
- port:数据库端口号。这是连接到MySQL数据库所需的信息之一。默认值为3306。
- charset:数据库字符集。这是连接到MySQL数据库所需的信息之一。默认值为’utf8mb4’。
通过以上介绍,我们可以看到,编写一个pymysql工具类可以大大提高开发效率。在实际使用中,我们只需要创建一个Mysql对象,然后调用其方法即可完成数据库操作。例如:
# 创建一个Mysql对象
mysql = Mysql(host="localhost", user="root", password="123456", database="testdb")
# 执行SQL语句,获取一条数据
result = mysql.fetchone("SELECT * FROM users WHERE id = 1")
print(result)
# 执行SQL语句,获取所有数据
results = mysql.fetchall("SELECT * FROM users")
for row in results:
print(row)
# 执行SQL语句,提交事务
mysql.exec("INSERT INTO users (name, age) VALUES ('张三', 25)")
# 关闭游标和连接
del mysql
通过以上示例,我们可以看到,使用Mysql工具类可以方便地完成数据库操作。希望本文能帮助到您,祝您学习愉快!
文章来源:https://blog.csdn.net/python_jeff/article/details/135219964
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!