在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