MyBatis执行insert方法,执行一次数据库生成两条记录的解决方法

MyBatis执行insert方法,执行一次数据库生成两条记录的解决方法

方法一

在ruanner处把Delegate IDE build/run actions to maven (将IDE构建/运行操作委托给Maven)的勾取消掉。
**注意:**但是此方法有可能会导致springboot项目运行的时候报错找不到xx包。建议使用第二种方式
在这里插入图片描述

方法二

直接勾选ruanner的 skip test 也能解决此问题
在这里插入图片描述

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
MyBatis中,修改完一条数据后可以通过以下两种方式获取修改的ID: 1. 使用数据库自增主键 如果你在数据库中使用了自增主键,那么在执行修改操作之前,你需要先在对应的mapper.xml文件中设置主键自动生成: ```xml <insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users (name, age, gender) VALUES (#{name}, #{age}, #{gender}) </insert> ``` 在这个例子中,我们设置了keyProperty属性为id,表示我们需要将自动生成的主键ID设置到User对象的id属性中。 然后在执行修改操作后,就可以通过User对象的id属性获取修改的ID: ```java SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setId(1); user.setName("Tom"); user.setAge(20); user.setGender("male"); int rows = sqlSession.update("updateUser", user); if (rows > 0) { System.out.println("修改成功,修改的ID为:" + user.getId()); } sqlSession.commit(); } finally { sqlSession.close(); } ``` 2. 使用数据库返回主键 如果你在数据库中没有设置自增主键,那么可以通过在mapper.xml中设置useGeneratedKeys和keyProperty属性来获取数据库返回的主键: ```xml <insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users (name, age, gender) VALUES (#{name}, #{age}, #{gender}) </insert> ``` 在执行修改操作后,可以通过User对象的id属性获取修改的ID: ```java SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setId(1); user.setName("Tom"); user.setAge(20); user.setGender("male"); int rows = sqlSession.update("updateUser", user); if (rows > 0) { System.out.println("修改成功,修改的ID为:" + user.getId()); } sqlSession.commit(); } finally { sqlSession.close(); } ``` 需要注意的是,使用数据库返回主键的方式,需要数据库支持返回主键功能,如果你使用的是某些老版本的数据库,可能不支持该功能。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值