python等各种编程语言本身不具备直接连接数据库的功能,需要导入第三方包,常用的是pymysql
安装:pip install pymysql
使用pymysql模块的流程与jmeter中的jdbc连接类似
工作流程:
创建连接-> 创建游标 ->定义sql ->执行sql ->关闭游标 -> 关闭连接
未出现异常:则提交事务
出现异常:则事务回滚
在代码中提交事务的方式有两种:
1、手动提交事务,通过conn.commit()方法去提交
2、自动提交,在创建连接时通过配置autocommit = True来设置
什么时候无需commit?
看数据库引擎,如果是MyISAM引擎,则不支持事务
如果是InnoDB,则支持事务。
show variables like "%auto%"可以查看是否开启事务。
如果是ON的状态,表示数据库开了自动提交,无需我们commit
如果是OFF的状态,表示数据库未开自动提交,需要我们在代码中commit
具体代码如下:
#1、导包
import pymysql
#2、创建连接
conn = pymysql.connect(
host = "127.0.0.1",
port = 3306,
database = "my_db",
user = "root",
password = "123456",
charset = "utf8"
)
#3、创建游标
cursor = conn.cursor()
#4、执行sql语句,并处理结果
#查询类操作
sql = "select * from t_area"
try:
cursor.execute(sql) # 执行语句
conn.commit() # 提交
except Exception:
conn.rollback()
#处理结果
print(cursor.rowcount) # 打印受影响的行数
row1 = cursor.fetchone() #获取一条结果
print(row1)
#5、关闭游标
cursor.close()
#6、关闭连接
conn.close()