import pymysql # 定义 数据库工具类 class DBTools(object): # 创建连接 - 类方法。可以直接使用类名调用! @classmethod def __create_conn(cls): conn = pymysql.connect(host="172.16.28.4", port=3306, user="root", password="root", database="books", charset="utf8") # 不能遗漏 return conn # 查一条记录 - 封装为类方法,方便调用 @classmethod def query_one(cls, sql): my_conn = None my_cursor = None res = None try: # 创建连接, 借助类名,调用 类方法 create_conn my_conn = DBTools.__create_conn() # 创建游标 my_cursor = my_conn.cursor() # 执行 sql 语句,做查询 my_cursor.execute(sql) # 提取一条记录 res = my_cursor.fetchone() except Exception as err: print("执行查询SQL失败:", str(err)) finally: # 关闭游标 my_cursor.close() # 关闭连接 my_conn.close() # 返回查询结果 return res # 增删改记录 @classmethod def db_uid(cls, sql): my_conn = None my_cursor = None try: # 创建连接 my_conn = DBTools.__create_conn() # 创建游标 my_cursor = my_conn.cursor() # 执行 增删改 语句 my_cursor.execute(sql) print("Affected rows:", my_conn.affected_rows()) # 提交事务 my_conn.commit() except Exception as err: print("执行 增删改 SQL 失败:", str(err)) # 回滚事务 my_conn.rollback() finally: # 关闭游标 my_cursor.close() # 关闭连接 my_conn.close() if __name__ == '__main__': result = DBTools.query_one("select * from t_hero;") print("查询语句的结果:", result) DBTools.db_uid("update t_book set `read` = 100 where id = 3;")