pymysql工具类封装

pymysql工具类封装

提供的功能:

1.获取数据库连接

2.关闭数据库连接

3.查询一条记录

4.查询多条记录

5.增删改语句

import pymysql

host = "127.0.0.1"
user = "root"
password = "han"
port = 3307
database = "school"


class DBUtils:
    # 添加类属性
    conn = None

    # 获取链接
    @classmethod
    def __getConn(cls):
        if cls.conn is None:
            cls.conn = pymysql.connect(host=host, user=user, password=password, port=port, database=database)

        return cls.conn

    # 关闭链接
    @classmethod
    def __closeConn(cls):
        if cls.conn is not None:
            cls.conn.close()
            cls.conn = None

    # 查询一条
    @classmethod
    def select_one(cls, sql):
        cursor = None
        result = None
        try:
            cls.conn = cls.__getConn()
            cursor = cls.conn.cursor()  # 获取游标
            cursor.execute(sql)  # 执行sql
            result = cursor.fetchone()  # 提取结果集

        except Exception as e:
            print(e)
        finally:
            cursor.close()  # 关闭游标
            cls.__closeConn()  # 关闭连接
            print("最后执行")
            return result

    # 查询多条
    @classmethod
    def select_all(cls, sql):
        cursor = None
        result = None
        try:
            cls.conn = cls.__getConn()
            cursor = cls.conn.cursor()  # 获取游标
            cursor.rownumber = 0  # 将游标位置回退为0
            cursor.execute(sql)  # 执行sql
            result = cursor.fetchall()  # 提取结果集

        except Exception as e:
            print(e)
        finally:
            cursor.close()  # 关闭游标
            cls.__closeConn()  # 关闭连接
            return result

    # 增删改
    @classmethod
    def uid_db(cls, sql):
        cursor = None
        try:
            cls.conn = cls.__getConn()
            cursor = cls.conn.cursor()
            cursor.execute(sql)
            cls.conn.commit()  # 提交事务
            print(f"受影响的行数:{cls.conn.affected_rows()}")
        except Exception as e:
            print(e)
            cls.conn.rollback()  # 回滚事务
        finally:
            cursor.close()  # 关闭游标
            cls.__closeConn()  # 关闭连接


if __name__ == '__main__':
    res = DBUtils.select_one("select * from user")
    res_all = DBUtils.select_all("select * from user")
    DBUtils.uid_db("update user set username='大大怪1' where id =12 ")
    print(res_all)

全部评论
这么美滋滋的工具类不点个赞?
点赞 回复 分享
发布于 2022-05-01 15:21

相关推荐

05-16 11:16
已编辑
东华理工大学 Java
牛客73769814...:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
牛客创作赏金赛
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利 有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的 真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
面试尴尬现场
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务