Mybatis使用insert插入数据

         我使用了mybatis,数据库是mysql,在mysql中有一个叫userinfo的表,id是自增的,然后在调用insert方法插入数据的时候发现,虽然程序并没有报错,好像也正常执行了,但数据库中却没有任何数据显示,一下将展示遇到的情况。

        说明:这是一个表名为userinfo的在mysql数据库中的表,设置的id自增,在插入将数据插入到userinfo表中时发现不能够正常插入,本以为id自增在初始化对应的UserInfo类的时候就不用初始化id了,结果发现不初始化id数据没有插入,但既然设定了自增就不希望再进行id的初始化。但即使初始化了id依然是无法显示插入的数据。

通过多次尝试发现,如果直接登录mysql之后再写插入语句就能够出现,运行程序就不能插入,最特别之处在下图:

        这是间隔执行直接登录mysql和运行程序插入,可以发现,虽然运行程序看似没有插入,但实际上它已经占用自增的id了,27是mysql客户端运行插入语句得到的结果,中间运行了一次程序,在运行一次mysql客户端的插入程序,明显发现有一个id已经被占用了,这就可以推断出上面有个间隔的id也是因为运行程序时,虽然没有插入到表中,但实际上已经有点作用了,只是还不清楚为什么这么诡异。

最后通过一段时间的折腾和查找发现在代码中没有调用session.commit()方法,虽然在查询的时候不需要commit()方法,然后在插入和更新数据的时候却是需要的。

总结:mybatis中使用手动创建SqlSession的时候,对于插入和更新数据需要commit()方法,否则无法真正写入到数据库。


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值