封装了读取 MySQL 数据库中数据的方法
class DbHelper(object):
"""
MySQ 数据库帮助类
"""
# 使用方法
# 1. 实例化对象
# 2. 查询,得到结果
# 3. 关闭对象
"""
db_helper = MysqlDbHelper("localhost", 3306, 'root', '', 'tpshop2.0.5', "utf8")
for i in range(10000):
result = db_helper.execute("select * from tp_goods order by 1 desc limit 1000;")
print("第%d次,结果是%r" % (i, result))
db_helper.close()
"""
connect = None
def __init__(self, host, port, user, password, database, charset='utf8'):
"""
构造方法
:param host: 数据库的主机地址
:param port: 数据库的端口号
:param user: 用户名
:param password: 密码
:param database: 选择的数据库
:param charset: 字符集
"""
self.connect = pymysql.connect(host=host, port=port,
user=user, password=password,
db=database, charset=charset)
def read_sql(self, file, encoding="utf8"):
"""
从 文件中读取 SQL 脚本
:param file: 文件名 + 文件路径
:return:
"""
sql_file = open(file, "r", encoding=encoding)
sql = sql_file.read()
sql_file.close()
return sql
def execute(self, sql):
"""
执行 SQL 脚本查询并返回结果
:param sql: 需要查询的 SQL 语句
:return: 字典类型
data 是数据,本身也是个字典类型
count 是行数
"""
cursor = self.connect.cursor()
row_count = cursor.execute(sql)
rows_data = cursor.fetchall()
result = {
"count": row_count,
"data": rows_data
}
cursor.close()
return result
def close(self):
"""
关闭数据库连接
:return:
"""
self.connect.close()