使用Python 封装一个简单的Mysql工具类

        pymysql操作mysql,虽然简单,但每次都要链接数据库,获取游标,关闭游标,关闭链接。这些操作无技术含量,还要重复编写!!想一想不如封装一个DBUtil,来提高开发效率。

要编写工具类首先要把公共内容封装起来

  • 获取链接,获取游标
  • 关闭游标,关闭链接
  • 合并DML方法
  • 查询数据(单条数据和多条数据)

首先要设置连接参数

class DBUtil:
    # 设置连接参数
    config={
        'host':'localhost',
        'port':3306,
        'user':'root',
        'passwd':'(你的密码)',
        'db':'test2',
        'charset':'utf8mb4'
    }

 

获取链接,获取游标

def __init__(self):

        self.connt = pymysql.connect(**DBUtil.config)
        self.cursor = self.connt.cursor()

 关闭链接与游标

def close(self):

        if self.cursor:
            self.cursor.close()
        if self.connt:
            self.connt.close()

执行dml语句 

    def execute_sql(self,sql,*args):
        '''
        可以执行sql语句,用于数据的增加、删除、修改
        '''
        try:
            # 执行SQL
            self.cursor.execute(sql,args)
            # 提交事务
            self.connt.commit()
        except Exception as e:
            print(e)
            if self.connt:
                self.connt.rollback()
        finally:
            self.close()

查询数据

 

def query_one(self,sql,*args):
        '''
        查询一条数据        
        '''
        try:
            # 执行SQL
            self.cursor.execute(sql,args)
            # 获取结果
            rs = self.cursor.fetchone()
            # 返回数据
            return rs
        except Exception as e:
            print(e)
        finally:
            self.close()

以下是完整代码

import pymysql

class DBUtil:
    # 设置连接参数
    config={
        'host':'localhost',
        'port':3306,
        'user':'root',
        'passwd':'rootroot',
        'db':'test2',
        'charset':'utf8mb4'
    }
    def __init__(self):
        '''
        获取链接
        获取游标
        '''
        self.connt = pymysql.connect(**DBUtil.config)
        self.cursor = self.connt.cursor()

    def close(self):
        '''
        关闭链接与游标
        '''
        if self.cursor:
            self.cursor.close()
        if self.connt:
            self.connt.close()


    def execute_sql(self,sql,*args):
        '''
        可以执行sql语句,用于数据的增加、删除、修改
        '''
        try:
            # 执行SQL
            self.cursor.execute(sql,args)
            # 提交事务
            self.connt.commit()
        except Exception as e:
            print(e)
            if self.connt:
                self.connt.rollback()
        finally:
            self.close()

    def query_one(self,sql,*args):
        '''
        查询一条数据        
        '''
        try:
            # 执行SQL
            self.cursor.execute(sql,args)
            # 获取结果
            rs = self.cursor.fetchone()
            # 返回数据
            return rs
        except Exception as e:
            print(e)
        finally:
            self.close()

    def query_all(self,sql,*args):
        '''
        查询所有数据
        '''
        try:
            # 执行SQL
            self.cursor.execute(sql,args)
        # 获取结果,并返回数据
            return self.cursor.fetchall()
        except Exception as e:
            print(e)
        finally:
            self.close()

if __name__ =='__main__':
    db = DBUtil()
    # sql = 'insert into user(name,age) values("张三",18)' 
    # execu = db.execute_sql(sql)
    sql = 'select * from user where age = 18'
    # print(db.query_one(sql))
    print(db.query_all(sql))

 这样一个简单的DBUtil就封装完成了,这个比较适合新手,大佬勿喷

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,下面是一个使用 Python 实现的 Redis 工具类的示例: ```python import redis class RedisUtil: def __init__(self, host='localhost', port=6379, db=0, password=None): self.redis = redis.Redis(host=host, port=port, db=db, password=password) def set(self, key, value, ex=None): self.redis.set(key, value, ex=ex) def get(self, key): return self.redis.get(key) def delete(self, key): self.redis.delete(key) def expire(self, key, seconds): self.redis.expire(key, seconds) ``` 该工具类使用Python 的 `redis` 库,它提供了一个高级的 Redis 客户端,可以方便地连接到 Redis 服务器并执行 Redis 命令。 该工具类定义了四个方法: - `set` 方法用于向 Redis 服务器设置一个键值对。 - `get` 方法用于从 Redis 服务器获取一个键的值。 - `delete` 方法用于从 Redis 服务器删除一个键。 - `expire` 方法用于设置一个键的过期时间(以秒为单位)。 使用这个工具类,你可以方便地连接到 Redis 服务器并执行 Redis 命令,例如: ```python redis_util = RedisUtil() redis_util.set('key', 'value') value = redis_util.get('key') print(value) ``` 希望这对你有帮助! ### 回答2: 使用Python实现一个Redis工具类可以方便地封装对Redis数据库的操作,简化开发工作。 首先,需要在Python使用Redis模块连接到Redis数据库。可以使用`redis`模块中的`StrictRedis`进行连接和操作。 接下来,可以定义一个Redis工具类,包含常用的Redis操作方法。例如,可以包含以下几个方法: 1. 连接Redis数据库的方法:可以使用`StrictRedis`的构造函数创建一个Redis连接对象。 ```python import redis class RedisTool: def __init__(self, host='localhost', port=6379, password=None, db=0): self.redis = redis.StrictRedis(host=host, port=port, password=password, db=db) ``` 2. 存储数据的方法:可以使用`set`方法将数据存储到Redis中。 ```python def set_data(self, key, value): self.redis.set(key, value) ``` 3. 获取数据的方法:可以使用`get`方法从Redis中获取数据。 ```python def get_data(self, key): value = self.redis.get(key) return value.decode() if value else None ``` 4. 删除数据的方法:可以使用`delete`方法从Redis中删除指定的数据。 ```python def delete_data(self, key): self.redis.delete(key) ``` 5. 判断key是否存在的方法:可以使用`exists`方法判断指定的key是否存在。 ```python def exists_key(self, key): return self.redis.exists(key) ``` 通过封装这些常用的Redis操作方法,可以提高开发效率,减少重复代码。 使用这个Redis工具类,可以轻松地连接到Redis数据库使用常用的操作。在其他程序中,只需要实例化Redis工具类,然后调用相关方法即可完成所需的Redis操作。 ### 回答3: REDIS是一个开源的内存数据库,主要用于存储和检索数据。在PYTHON中,我们可以使用redis-py库来实现一个REDIS工具类。 首先,我们需要安装redis-py库。在命令行中输入以下命令来安装库: ``` pip install redis ``` 接下来,我们可以在PYTHON中创建一个REDIS工具类,实现常用的功能方法。以下是一个简单的示例: ```python import redis class RedisUtils: def __init__(self, host, port, db): self.redis = redis.Redis(host=host, port=port, db=db) def set_key(self, key, value): self.redis.set(key, value) def get_key(self, key): return self.redis.get(key) def delete_key(self, key): return self.redis.delete(key) def get_keys(self, pattern='*'): return self.redis.keys(pattern) def increment(self, key): self.redis.incr(key) def decrement(self, key): self.redis.decr(key) ``` 在上面的示例中,我们创建了一个RedisUtils,它有一个初始化方法来连接到REDIS服务器。我们可以通过set_key方法来设置键值对,通过get_key方法来获取键对应的值,通过delete_key方法来删除键,通过get_keys方法来获取匹配模式的键列表,通过increment和decrement方法来对键进行自增和自减操作。 使用这个REDIS工具类,我们可以方便地与REDIS服务器进行交互。可以根据实际需求,添加更多的功能方法。 注意,以上仅为一个简单的示例,实际使用中可能需要更复杂的功能方法和错误处理。在实际开发中,还可以根据需要进行更多的封装和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值