python 封装 MySQL 操作

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


前言

封装 MySQL 操作可以让你的代码更加模块化、可重用,并且更容易维护。通过封装,你可以将与数据库交互的细节隐藏起来,对外提供一个简洁的接口。

完整代码

import mysql.connector
from mysql.connector import Error
class MySQLWrapper:
    def __init__(self, host, user, password, database):
        """初始化数据库连接参数。"""
        self.host = host
        self.user = user
        self.password = password
        self.database = database
        self.connection = None
    def connect(self):
        """连接到 MySQL 数据库。"""
        try:
            self.connection = mysql.connector.connect(
                host=self.host,
                user=self.user,
                password=self.password,
                database=self.database
            )
            if self.connection.is_connected():
                db_info = self.connection.get_server_info()
                print(f"Connected to MySQL Server version {db_info}")
        except Error as e:
            print(f"Error while connecting to MySQL: {e}")
            self.connection = None
    def close(self):
        """关闭数据库连接。"""
        if self.connection and self.connection.is_connected():
            self.connection.close()
            print("MySQL connection is closed.")
    def execute_query(self, query, values=None, commit=False):
        """执行 SQL 语句,并根据需要返回结果或提交更改。"""
        if not self.connection or not self.connection.is_connected():
            print("Database connection is not established.")
            return None
        cursor = self.connection.cursor()
        try:
            if values:
                cursor.execute(query, values)
            else:
                cursor.execute(query)
            if commit:
                self.connection.commit()
            # 如果是 SELECT 查询,返回结果
            if query.strip().upper().startswith('SELECT'):
                return cursor.fetchall()
            else:
                return cursor.rowcount
        except Error as e:
            print(f"Error executing SQL: {e}")
            return None
        finally:
            cursor.close()
    def query_data(self, query, values=None):
        """执行查询操作。"""
        return self.execute_query(query, values, commit=False)
    def insert_data(self, query, values):
        """执行插入操作。"""
        return self.execute_query(query, values, commit=True)
    def update_data(self, query, values):
        """执行更新操作。"""
        return self.execute_query(query, values, commit=True)
    def delete_data(self, query, values):
        """执行删除操作。"""
        return self.execute_query(query, values, commit=True)
def main():
    # 创建 MySQLWrapper 实例并连接到数据库
    db = MySQLWrapper(host='localhost', user='root', password='password', database='testdb')
    db.connect()
    if db.connection is not None:
        # 查询数据
        query = "SELECT * FROM users WHERE age > %s"
        results = db.query_data(query, (18,))
        print("Query Results:")
        for row in results:
            print(row)
        # 插入数据
        insert_query = "INSERT INTO users (name, age) VALUES (%s, %s)"
        insert_values = ("John Doe", 25)
        rows_affected = db.insert_data(insert_query, insert_values)
        print(f"Insert affected {rows_affected} rows.")
        # 更新数据
        update_query = "UPDATE users SET age = %s WHERE name = %s"
        update_values = (26, "John Doe")
        rows_affected = db.update_data(update_query, update_values)
        print(f"Update affected {rows_affected} rows.")
        # 删除数据
        delete_query = "DELETE FROM users WHERE name = %s"
        delete_values = ("John Doe",)
        rows_affected = db.delete_data(delete_query, delete_values)
        print(f"Delete affected {rows_affected} rows.")
        # 关闭数据库连接
        db.close()
if __name__ == '__main__':
    main()

说明

类定义:

MySQLWrapper 类封装了与 MySQL 数据库交互的所有方法。

__init__ 方法初始化数据库连接参数。

connect 方法建立数据库连接。

close 方法关闭数据库连接。

execute_query 方法执行 SQL 语句,并根据需要返回结果或提交更改。

query_data, insert_data, update_data, delete_data 方法分别封装了查询、插入、更新和删除操作。

主函数:

创建 MySQLWrapper 实例并连接到数据库。

执行查询、插入、更新和删除操作。

关闭数据库连接。

运行代码

确保你已经安装了 mysql-connector-python 库:

pip install mysql-connector-python

然后运行代码:

python your_script_name.py

请将 your_script_name.py 替换为你的脚本文件名。‍

小结

通过上述步骤,我们封装了 MySQL 数据库的操作,包括连接数据库、执行 SQL 语句、查询、插入、更新和删除等常见功能。这样的封装方式不仅提高了代码的可读性和可维护性,还使得代码更加简洁明了。你可以根据实际需求进一步扩展这些函数的功能,比如添加事务处理、错误处理等。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
在这里插入图片描述​​​​
在这里插入图片描述​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值