连接与事务
connection = pymysql.connect(
host='10.201.10.253',
user='bigdata',
password='bigdata',
db='test',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor,
autocommit=True, # 自动提交模式下,每个查询都是一个独立的事务
isolation_level='READ COMMITTED' # 设置隔离级别
)
一个大坑: connection 如果 未配autocommit(即False),查询时未开启事务,而且共用同一个连接,会导致查询缓存。也就是你查询一个表,再改了数据表的内容,再次查询还是原来的旧数据。
执行SQL
try:
with connection.cursor() as cursor:
# 开始事务(可选,因为默认情况下操作就在一个隐式的事务中)
connection.begin()
# 执行SQL语句
sql = "select * from room"
cursor.execute(sql)
data = cursor.fetchone()
print("Database version : %s " % data)
# 如果一切正常,提交事务
connection.commit()
except Exception as e:
# 发生错误时,回滚事务
connection.rollback()
print(f"An error occurred: {e}")
finally:
# connection.close()
print("")