文章目录
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))