mybatis存在就不插入_MyBatis使用Insert无法插入解决办法

前言

今天在学习MyBatis的时候,使用select查询语句可以查出结果并准确无误,但是使用insert语句的时候无法插入,因为我使用的是mysql数据库,并且给主键ID设置了自动递增,在每次插入之后自动递增值都会+1,不过数据库就是没有记录,我想应该是数据库事务没有提交的原因导致的。

解决办法

在进行了一些测试之后,果不其然是事务没有自动提交的原因导致回滚而造成的没有插入成功,现提供如下两种解决方案。

方案一

在进行了insert、update、delete等操作之后,在其后进行手动提交事务,例如:

public void addUser(User user) {

SqlSession sqlSession = dbAccess.getSqlSession();

sqlSession.insert("User.addUser",user);

sqlSession.commit();

sqlSession.close();

}

方案二

在MyBatis的SqlSessionFactory中打开一个新的会话时,是可以进行设定是否自动提交事务。

public SqlSession getSqlSession() {

//拿到MyBatis配置文件,获取数据库连接信息

Reader reader = null;

try {

reader = Resources.getResourceAsReader("mybatis-config.xml");

} catch (IOException e) {

e.printStackTrace();

}

//获取到数据库会话工厂SqlSessionFactory

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

//打开一个数据库会话

return sqlSessionFactory.openSession(true);

}

后记

经过如上的操作之后,这时使用MyBatis进行增删改操作时候就不会出现之前的事务自动回滚问题了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值