python学习——做接口测试时,数据库的commit()方法在使用过程中出现的问题

场景:

有一个增加数据的接口A,在为接口A拼装参数的时候创建了个数据库连接对象,去数据库里查询了(执行了一次select)某个数据用于拼装接口A的参数,这个时候数据库连接对象还在,未关闭

执行接口A

再次使用刚才创建的数据库连接对象去查询(又执行了一次select)刚才增加的数据是否增加成功

问题:

发现查询出来的始终是增加数据的前一条数据,效果如下,预期查询到的应该是oracle....,实际查询到的确是mysql.....

解决办法: 

修改代码,在execute()方法后增加了commit()方法,达到了预期的查询效果

# 封装的数据库查询方法,直接根据sql返回查询结果
    def select(self, sql):
        cursor = self.conn.cursor()
        cursor.execute(sql)
        self.conn.commit()  # 修改后增加的代码
        result = cursor.fetchall()
        cursor.close()
        return result

总结: 

在数据库学习过程中,了解到对数据库的修改操作需要执行commit()方法,否则修改不生效

本以为只是执行select语句,不需要执行commit()方法,实际中发现,如果在两次查询中间通过其他方式修改了数据(比如通过调接口或者手动修改数据库的数据),那么第二次查询是查询不到最新数据的

需要对数据库的事务机制近一步的学习了解,目前的理解就是如果要多次查询,且查询中间会通过其他方式修改数据,则需要在查询语句后跟上commit()方法

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值