美文网首页
封装操作数据库工具类

封装操作数据库工具类

作者: Chaweys | 来源:发表于2021-01-26 08:25 被阅读0次

#coding=utf-8
import pymysql
from warnings import filterwarnings

#过滤pymysql的告警信息
filterwarnings("ignore",category=pymysql.Warning)

#定义操作数据库工具类
"""
注:如果操作的表中含有中文,需要设置字符集:charset="utf8"
否则报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0
"""
class DBUtil:
    def __init__(self):
        self.con=pymysql.connect(host="localhost",user="root",password="hdc@328216",database="xdtestcase",port=3306,charset="utf8")
        self.cursor=self.con.cursor(cursor=pymysql.cursors.DictCursor)

    def __del__(self):
        self.cursor.close()
        self.con.close()


    def query(self,sql,state="all"):
        """
        查询数据库
        :param sql: 
        :param state: all 代表查询所有fetchall(),1代表查询一条fetchone()
        :return: 
        """
        try:
            self.cursor.execute(sql)
            if state=="all":
                result=self.cursor.fetchall()
            else:
                result =self.cursor.fetchone()
            return result
        except Exception as e:
            print("执行sql异常:{0}".format(e))
        finally:
            self.cursor.close()



    def updateDB(self,sql):
        """
        新增,删除,修改
        :param sql: 
        :return: 
        """
        try:
            row=self.cursor.execute(sql)  #返回执行sql影响的行数:整型
            self.con.commit()             #执行增删改后需要提交事物
            print("影响行数:{0}".format(row))

        except Exception as e:
            self.con.rollback()           #当执行失败,需要回滚至原来数据
            print("执行sql异常:{0}".format(e))
        finally:
            self.cursor.close()


if __name__ == '__main__':
    sql="select * from `case`"
    db=DBUtil()
    result=db.query(sql)    #查询所有
    #result=db.query(sql,1) #查询1条
    print(result)

    # sql2="insert into `case` (`app`) values('xd')"
    # db = DBUtil()
    # db.updateDB(sql2)



├─case
│  │  TestIndexCase.py
│  │  UserTestCase.py
│  │  UserTestCase2.py
│  │  UserTestCase3.py
│  │
│
├─config
│      __init__.py
│
├─main
│      RunMain.py
│      __init__.py
│
├─req
│      requestDemo.py
│
├─until
│  │  dbUitls.py
│  │  RequestUtils.py

相关文章

网友评论

      本文标题:封装操作数据库工具类

      本文链接:https://www.haomeiwen.com/subject/rctuzktx.html