【Python】Python封装一个操作MySQL的工具类

代码实现

import pymysql

class MySQLTool:
    def __init__(self, host, user, password, database):
        self.connection = pymysql.connect(host=host,
                                          user=user,
                                          password=password,
                                          database=database)
        self.cursor = self.connection.cursor(pymysql.cursors.DictCursor)

    def query(self, sql, params=None):
        self.cursor.execute(sql, params or ())
        return self.cursor.fetchall()

    def insert(self, sql, params=None):
        self.cursor.execute(sql, params or ())
        self.connection.commit()
        return self.cursor.lastrowid

    def update(self, sql, params=None):
        self.cursor.execute(sql, params or ())
        self.connection.commit()
        return self.cursor.rowcount

    def delete(self, sql, params=None):
        self.cursor.execute(sql, params or ())
        self.connection.commit()
        return self.cursor.rowcount

    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.cursor.close()
        self.connection.close()
        
        
if __name__ == '__main__':
    # 初始化工具类实例
    db_tool = MySQLTool('localhost', 'root', 'password', 'my_database')

    # 查询操作
    result = db_tool.query("SELECT * FROM my_table WHERE id = %s", (1,))
    print(result)

    # 插入操作
    new_id = db_tool.insert("INSERT INTO my_table (name, value) VALUES (%s, %s)", ('name', 'value'))
    print(f"Inserted row ID: {new_id}")

    # 更新操作
    updated_rows = db_tool.update("UPDATE my_table SET value = %s WHERE id = %s", ('new_value', 1))
    print(f"Updated rows: {updated_rows}")

    # 删除操作
    deleted_rows = db_tool.delete("DELETE FROM my_table WHERE id = %s", (1,))
    print(f"Deleted rows: {deleted_rows}")
    
    # 推荐使用以下这种操作方式不用手动去关闭连接
    with MySQLTool('localhost', 'root', 'password', 'my_database') as db_tool:
    	# 这里执行数据库操作
	    result = db_tool.query("SELECT * FROM my_table")
	    print(result)
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 UI 自动化测试中,如果需要使用 PyMySQL 进行数据库操作,可以将 PyMySQL 封装一个类,使得 UI 自动化测试代码可以更方便地调用数据库操作。 以下是一个 PyMySQL 封装类的示例: ```python import pymysql class DBHelper: def __init__(self, host, port, user, password, db): self.conn = pymysql.connect( host=host, port=port, user=user, password=password, db=db, charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) def execute_sql(self, sql): try: with self.conn.cursor() as cursor: cursor.execute(sql) self.conn.commit() result = cursor.fetchall() return result except Exception as e: print(f"Error: {e}") ``` 在上述代码中,我们定义了一个名为 `DBHelper` 的类,该类接受五个参数:`host`、`port`、`user`、`password` 和 `db`,这些参数分别对应着数据库的主机地址、端口、用户名、密码以及数据库名。 在类的 `__init__` 方法中,我们使用 PyMySQL 创建了一个数据库连接。在 `execute_sql` 方法中,我们可以执行任意 SQL 查询语句,并返回查询结果。 在 UI 自动化测试代码中,我们可以使用以下代码来实例化 DBHelper 类,并调用其中的 `execute_sql` 方法: ```python db = DBHelper('localhost', 3306, 'user', 'password', 'my_database') result = db.execute_sql('SELECT * FROM my_table') ``` 上述代码中,我们实例化了 DBHelper 类,并传递了相应的参数。然后,我们调用 `execute_sql` 方法来执行 SQL 查询语句,并将结果赋值给变量 `result`。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值