利用Python封装MySQLHelper类实现数据库的增删改查功能

 更新时间:2023年06月16日 15:31:10   作者:小小鸟爱吃辣条  
Python 连接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 两种库,本文主要介绍了如何封装一个MySQLHelper类,实现对数据库的增删改查功能,感兴趣的可以了解一下

Python 连接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 两种库。本文介绍使用 pymysql 库连接 MySQL,并实现基本的增删改查操作。

在使用 pymysql 前需要先安装该库,可使用 pip 命令进行安装:

pip install pymysql

首先,我们可以封装一个 MySQLHelper 类来管理数据库连接和操作:

import pymysql


class MySQLHelper:
    def __init__(self, host, port, user, password, database):
        self.host = host
        self.port = port
        self.user = user
        self.password = password
        self.database = database
        self.conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)

    def execute(self, sql: str, params: tuple = None):
        """执行 SQL 语句,无返回值"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        self.conn.commit()
        cursor.close()

    def query_one(self, sql: str, params: tuple = None):
        """查询并返回单条数据"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        result = cursor.fetchone()
        cursor.close()
        return result

    def query_all(self, sql: str, params: tuple = None):
        """查询并返回所有数据"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        result = cursor.fetchall()
        cursor.close()
        return result

    def insert(self, table, data: dict):
        """插入一条数据"""
        fields = ','.join(data.keys())
        values = ','.join(['%s'] * len(data))
        sql = 'INSERT INTO %s (%s) VALUES (%s)' % (table, fields, values)
        self.execute(sql, tuple(data.values()))

    def update(self, table, data: dict, where: str = '1=2', where_params: tuple = None):
        """更新数据"""
        set_values = ','.join(['%s=%s' % (field, '%s') for field in data.keys()])
        sql = 'UPDATE %s SET %s WHERE %s' % (table, set_values, where)
        params = tuple(data.values())
        if where_params:
            params += where_params
        self.execute(sql, params)

    def delete(self, table, where: str = '1=2', where_params: tuple = None):
        """删除数据"""
        sql = 'DELETE FROM %s WHERE %s' % (table, where)
        if where_params:
            self.execute(sql, where_params)
        else:
            self.execute(sql)

    def close(self):
        """关闭数据库连接"""
        self.conn.close()

以上 MySQLHelper 类封装了基本的增删改查操作,说明如下:

  • execute 方法用于执行 SQL 语句,无返回值;
  • query_one 方法用于查询并返回单条数据;
  • query_all 方法用于查询并返回所有数据;
  • insert 方法用于插入一条数据;
  • update 方法用于更新数据;
  • delete 方法用于删除数据;
  • close 方法用于关闭数据库连接。

在使用 MySQLHelper 类时,需要先实例化一个对象,并传递数据库连接参数。以下是一个简单的示例:

if __name__ == '__main__':
    helper = MySQLHelper('localhost', 3306, 'root', 'your_password', 'mydatabase')
    helper.insert('mytable', {'column1': 'value1', 'column2': 'value2'})
    helper.update('mytable', {'column1': 'new_value'}, 'id=%s', (1,))
    helper.delete('mytable', 'id=%s', (1,))
    result = helper.query_one('SELECT column1 FROM mytable WHERE id=%s', (1,))
    helper.close()

以上示例代码使用 MySQLHelper 连接到名为 mydatabase 的数据库,并操作名为 mytable 的表。具体实现了数据库的增、删、改、查等功能。执行完毕后,还需调用 close 方法关闭数据库连接。

总体而言,使用 Python 和 pymysql 库连接和操作 MySQL 数据库非常简单方便,可以轻松地完成各种数据库操作任务。

到此这篇关于利用Python封装MySQLHelper类实现数据库的增删改查功能的文章就介绍到这了,更多相关Python数据库增删改查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python利用memory_profiler实现内存分析

    Python利用memory_profiler实现内存分析

    memory_profiler是第三方模块,用于监视进程的内存消耗以及python程序内存消耗的逐行分析。本文将利用memory_profiler实现内存分析,需要的可以参考一下
    2022-10-10
  • Python利用appium实现模拟手机滑动操控的操作

    Python利用appium实现模拟手机滑动操控的操作

    Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。本文将利用appium实现模拟手机滑动操控的操作,感兴趣的可以了解一下
    2022-07-07
  • 详解如何使用Python编写vim插件

    详解如何使用Python编写vim插件

    本篇文章主要介绍了详解如何使用Python编写vim插件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 简单了解python反射机制的一些知识

    简单了解python反射机制的一些知识

    这篇文章主要介绍了简单了解python反射机制的一些知识,反射机制就是在运行时,动态的确定对象的类型,并可以通过字符串调用对象属性、方法、导入模块,是一种基于字符串的事件驱动。,需要的朋友可以参考下
    2019-07-07
  • Django基础之Model操作步骤(介绍)

    Django基础之Model操作步骤(介绍)

    下面小编就为大家带来一篇Django基础之Model操作步骤(介绍)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • python文件操作的基础详细讲解(write、read、readlines、readline)

    python文件操作的基础详细讲解(write、read、readlines、readline)

    使用python来读写文件是非常简单的操作,下面这篇文章主要给大家介绍了关于python文件操作的基础详细资料,包括write、read、readlines、readline等相关操作,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • PyQt 异步任务多线程的几种方案示例详解

    PyQt 异步任务多线程的几种方案示例详解

    文章总结了多线程异步编程的不同方式,包括QThread、QThreadPool和concurrent.futures,分别适用于不同场景,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-01-01
  • 解决python使用pd.read_csv()出现错误UnicodeDecodeError: 'utf-8' codec can't decode......

    解决python使用pd.read_csv()出现错误UnicodeDecodeError: 'utf-8&

    你是否有过之前用pd.read打开csv文件都正常,但突然有一天运行以前的代码就突然报错,这篇文章主要给大家介绍了关于如何解决python使用pd.read_csv()出现错误UnicodeDecodeError: 'utf-8' codec can't decode......的相关资料,需要的朋友可以参考下
    2023-12-12
  • WIndows10系统下面安装Anaconda、Pycharm及Pytorch环境全过程(NVIDIA GPU版本)

    WIndows10系统下面安装Anaconda、Pycharm及Pytorch环境全过程(NVIDIA GPU版本)

    这篇文章主要给大家介绍了关于WIndows10系统下面安装Anaconda、Pycharm及Pytorch环境(NVIDIA GPU版本)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Python3获取电脑IP、主机名、Mac地址的方法示例

    Python3获取电脑IP、主机名、Mac地址的方法示例

    这篇文章主要介绍了Python3获取电脑IP、主机名、Mac地址的方法,结合具体实例形式分析了Python3基于socket与uuid模块针对电脑的IP、主机名、Mac地址等信息的读取操作相关实现技巧,需要的朋友可以参考下
    2019-04-04

最新评论