使用mysqlclient 封装一个操作数据库的类

本文介绍了如何使用Python中的MysqlManager类,通过面向对象的方式实现MySQL数据库的增删改查操作,包括insert、update、delete和select方法的使用实例。
摘要由CSDN通过智能技术生成

import mysqlclient
from datetime import date, time, datetime

class MysqlManager:
    def __init__(self, host='localhost', user='root', password='123456'):
        self.conn = mysqlclient.connect(host=host, user=user, password=password)
        self.cursor = self.conn.cursor()

    def execute_query(self, sql):
        self.cursor.execute(sql)
        return self.cursor.fetchall()

    def insert(self, table, data):
        columns = ', '.join([f'{column}' for column in data.keys()])
        values = ', '.join(['%s'] * len(data))
        sql_insert = f"INSERT INTO {table} ({columns}) VALUES ({values})"
        self.cursor.execute(sql_insert, tuple(data.values()))
        self.conn.commit()

    def update(self, table, data):
        set_clause = ', '.join([f'{column} = %s' for column in data.keys()])
        where_clause = ' AND '.join([f'{column} = %s' for column in data.keys()])
        sql_update = f"UPDATE {table} SET {set_clause} WHERE {where_clause}"
        self.cursor.execute(sql_update, tuple(data.values()))
        self.conn.commit()

    def delete(self, table, data):
        where_clause = ' AND '.join([f'{column} = %s' for column in data.keys()])
        sql_delete = f"DELETE FROM {table} WHERE {where_clause}"
        self.cursor.execute(sql_delete)
        self.conn.commit()

    def select(self, table, condition=None):
        if condition:
            where_clause = ' AND '.join([f'{column} = %s' for column in condition.keys()])
            sql_select = f"SELECT * FROM {table} WHERE {where_clause}"
        else:
            sql_select = f"SELECT * FROM {table}"
        return self.execute_query(sql_select)

    def close(self):
        self.cursor.close()
        self.conn.close()

def main():
    mysqlManager = MysqlManager()
    data = {'name': 'John', 'age': 25, 'birthday': datetime.strptime('1980-07-04', '%Y-%m-%d')}
    # insert
    # mysqlManager.insert("users", data)

    # update
    # data = {'name': 'Michael'}
    # mysqlManager.update("users", data, condition={'id': 1})

    # delete
    # condition = {'age': 25}
    # mysqlManager.delete('users', condition)

    # select
    result = mysqlManager.select('users')
    for row in result:
        print(row)

if __name__ == '__main__':
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LXSHYZHX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值