python 连接操作MySQL数据库

安装依赖

pip install mysql-connector-python

自定义公共管理类

import mysql.connector
from mysql.connector import Error


class MySQLDatabase:
    def __init__(self, host, database, user, password):
        self.host = host
        self.database = database
        self.user = user
        self.password = password
        self.connection = None

    def connect(self):
        """建立到MySQL数据库的连接"""
        try:
            self.connection = mysql.connector.connect(
                host=self.host,
                database=self.database,
                user=self.user,
                password=self.password
            )
            if self.connection.is_connected():
                print("成功连接到数据库")
        except Error as e:
            print(f"连接失败: {e}")

    def disconnect(self):
        """关闭数据库连接"""
        if self.connection and self.connection.is_connected():
            self.connection.close()
            print("数据库连接已关闭")

    def execute_query(self, sql, params=None):
        """执行不需要返回结果的查询(如插入、更新、删除)"""
        cursor = None
        try:
            self.connect()
            cursor = self.connection.cursor()
            cursor.execute(sql, params)
            self.connection.commit()
            print("查询成功执行")
        except Error as e:
            print(f"查询执行失败: {e}")
        finally:
            if cursor:
                cursor.close()
            self.disconnect()

    def execute_many(self, sql, params=None):
        """执行不需要返回结果的查询(如插入、更新、删除)"""
        cursor = None
        try:
            self.connect()
            cursor = self.connection.cursor()
            cursor.executemany(sql, params)
            self.connection.commit()
            print("查询成功执行")
        except Error as e:
            print(f"查询执行失败: {e}")
        finally:
            if cursor:
                cursor.close()
            self.disconnect()

    def fetch_data(self, query_sql, params=None):
        """执行查询并获取所有数据"""
        cursor = None
        results = None
        try:
            self.connect()
            cursor = self.connection.cursor(dictionary=True)
            print("SQL:", query_sql)
            print("PARAMS:", params)
            cursor.execute(query_sql, params)
            results = cursor.fetchall()
        except Error as e:
            print(f"数据获取失败: {e}")
        finally:
            if cursor:
                cursor.close()
            self.disconnect()
        return results



# 使用示例
if __name__ == "__main__":
    db_config = {
        'host': '127.0.0.1',
        'database': 'test_database',
        'user': 'your_username',
        'password': 'your_password'
    }

    # 创建数据库对象
    db = MySQLDatabase(**db_config)

posted @   二月雪  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示