import
pymysql
#
封装数据库工具类
class
DBUtil
(
object
):
#
添加类属性
conn
=
None
@classmethod
def
__get_conn
(
cls
):
# 判断
conn
是否为空,如果是,创建
if
cls
.
conn
is None
:
cls
.
conn
=
pymysql
.
connect
(
host
=
""
,
port
=
,
user
=
""
,
password
=
""
,
database
=
""
,
charset
=
"utf8"
)
# 返回 非空连接
return
cls
.
conn
@classmethod
def
__close_conn
(
cls
):
# 判断,conn
不为空,需要关闭。
if
cls
.
conn
is not None
:
cls
.
conn
.
close
()
cls
.
conn
=
None
# 常用方法:查询一条结果
@classmethod
def
select_one
(
cls
,
sql
):
cursor
=
None
res
=
None
try
:
# 获取连接
cls
.
conn
=
cls
.
__get_conn
()
# 获取游标
cursor
=
cls
.
conn
.
cursor
()
# 执行 查询语句
cursor
.
execute
(
sql
)
# 提取一条结果
res
=
cursor
.
fetchone
()
except
Exception
as
err
:
print
(
"
sql
错误:
"
,
str
(
err
))
finally
:
# 关闭游标
cursor
.
close
()
# 关闭连接
cls
.
__close_conn
()
# 返回查询sql执行的 结果,
return
res
# 常用方法:增删改
@classmethod
def
uid_sql
(
cls
,
sql
):
cursor
=
None
try
:
# 获取连接
cls
.
conn
=
cls
.
__get_conn
()
# 获取游标
cursor
=
cls
.
conn
.
cursor
()
# 执行 uid 语句
cursor
.
execute
(
sql
)
print
(
"
影响的行数:
"
,
cls
.
conn
.
affected_rows
())
# 提交事务
cls
.
conn
.
commit
()
except
Exception
as
err
:
# 回滚事务
cls
.
conn
.
rollback
()
print
(
"
增删改
SQL
失败:
"
,
str
(
err
))
finally
:
# 关闭游标
cursor
.
close
()
# 关闭连接
cls
.
__close_conn
()