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
()