【专题】python封装MySQL类

文章目录


Python创建连接MySQL类 实例方法 连接 查询 执行sql

import mysql

class DBUtil():
	def __init__(self) -> None:
        """
        初始化数据
        """
        # 连接数据库信息
        self._host = ''
        self._user = ''
        self._pwd = '-'
        self._name = ''
        self._port = 
        self._charset = 'utf8'
        self._conn = self.connect_mysql()

        if self._conn:
            self._cursor = self._conn.cursor(cursor=pymysql.cursors.DictCursor)
            
	def connect_mysql(self):
        """
        建立数据库连接
        """
        try:
            conn = pymysql.connect(host=self._host,
                                   user=self._user,
                                   passwd=self._pwd,
                                   db=self._name,
                                   port=self._port,
                                   cursorclass=pymysql.cursors.DictCursor,
                                   charset=self._charset)
        except Exception as e:
            raise("数据库连接异常")
        return conn

    def close(self):
        """
        关闭数据库连接
        """
        if self._conn:
            try:
                if (type(self._cursor) == 'object'):
                    self._conn.close()
                if (type(self._conn) == 'object'):
                    self._conn.close()
            except Exception:
                raise("关闭数据库连接异常")

    def execute_sql(self,sql,*args):
        """
        执行sql
        """
        res = ''
        try:
            self._conn.begin()
            data = self._cursor.execute(sql,args)
            self._conn.commit()
        except Exception:
            self._conn.rollback()
            raise("执行sql异常")
        self.close()
        return data
    
    def select(self, sql, *args):
        """
        查询sql
        """
        try:
            self._conn.begin()
            self._cursor.execute(sql, *args)
            data = self._cursor.fetchall()
            if not data:
                date = False
        except Exception as e:
            self._conn.rollback()
            raise("查询异常")
        self.close()
        return data

    def exists(self,sql):
        """
        判断是否存在
        """
        flag = False
        try:
            self._conn.begin()
            self._cursor.execute(sql)
            data =self._cursor.fetchall()
            if data:
                flag = True
        except Exception as e:
            self.conn.rollback()
            raise("执行异常")
        self.close()
        return flag


if __name__ == '__main__':
    db = DBUtil()
    sql = "select * from test where id = %s" % 1
    print(db.execute_sql(sql))
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值