在Python中,对MySQL数据库的操作进行封装可以大大提高代码的可重用性和可维护性,下面将详细介绍如何使用mysql-connector-python库来封装MySQL数据库操作,包括查询、插入、更新和删除等基本操作。
一、安装依赖库
确保已经安装了mysql-connector-python库,如果还没有安装,可以使用以下命令进行安装:
pip install mysql-connector-python
二、数据库操作封装类
下面是一个使用mysql-connector-python库封装的数据库操作类示例:
import mysql.connector
from mysql.connector import Error
class MySQLDatabase:
def __init__(self, host, user, password, database, pool_size=5):
"""初始化MySQL数据库操作类
:param host: 数据库地址
:param user: 用户名
:param password: 密码
:param database: 数据库名
:param pool_size: 连接池大小
"""
self.host = host
self.user = user
self.password = password
self.database = database
self.pool_size = pool_size
# 初始化连接池
self.pool = mysql.connector.pooling.MySQLConnectionPool(
pool_name="mysql_pool",
pool_size=self.pool_size,
host=self.host,
user=self.user,
password=self.password,
database=self.database
)
def _get_connection(self):
"""获取连接池中的连接"""
return self.pool.get_connection()
def _execute_query(self, query, params=None, fetchone=False):
"""执行查询操作(查询、插入、更新等)"""
connection = None
cursor = None
try:
connection = self._get_connection()
cursor = connection.cursor(dictionary=True)
cursor.execute(query, params or ())
connection.commit() # 提交事务
if fetchone:
return cursor.fetchone() # 获取单条记录
return cursor.fetchall() # 获取所有记录
except Error as e:
print(f"Error: {e}")
return None
finally:
if cursor:
cursor.close()
if connection:
connection.close()
def query(self, query, params=None):
"""执行查询操作,返回查询结果"""
return self._execute_query(query, params)
def insert(self, query, params):
"""执行插入操作"""
return self._execute_query(query, params)
def update(self, query, params):
"""执行更新操作"""
return self._execute_query(query, params)
def delete(self, query, params):
"""执行删除操作"""
return self._execute_query(query, params)
def execute(self, query, params=None):
"""执行任意SQL语句"""
return self._execute_query(query, params) 三、使用示例
以下是如何使用上述封装类来执行数据库操作的示例:
if __name__ == "__main__":
# 创建MySQL数据库操作类的实例
db = MySQLDatabase(host="localhost", user="root", password="password", database="testdb")
# 执行查询操作
query = "SELECT * FROM users WHERE age = %s"
params = (25, )
results = db.query(query, params)
print("Query Result:", results)
# 执行插入操作
insert_query = "INSERT INTO users (name, age) VALUES (%s, %s)"
insert_params = ('John Doe', 30)
db.insert(insert_query, insert_params)
# 执行更新操作
update_query = "UPDATE users SET age = %s WHERE name = %s"
update_params = (31, 'John Doe')
db.update(update_query, update_params)
# 执行删除操作
delete_query = "DELETE FROM users WHERE name = %s"
delete_params = ('John Doe', )
db.delete(delete_query, delete_params) | 方法名 | 功能 | 参数 | 返回值 |
__init__ | 初始化MySQL数据库操作类 | host,user,password,database,pool_size | 无 |
_get_connection | 获取连接池中的连接 | 无 | 数据库连接对象 |
_execute_query | 执行查询操作(查询、插入、更新等) | query,params,fetchone | 查询结果或影响的行数 |
query | 执行查询操作,返回查询结果 | query,params | 查询结果 |
insert | 执行插入操作 | query,params | 影响的行数 |
update | 执行更新操作 | query,params | 影响的行数 |
delete | 执行删除操作 | query,params | 影响的行数 |
execute | 执行任意SQL语句 | query,params | 影响的行数或查询结果 |
以上内容就是解答有关python mysql数据库操作封装_转封装管理的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/91366.html