如何获取MyBatis通过Map插入数据后如何获取返回的自增ID值

打个比方,我要获取插入数据的自增Id,首先我需要插入数据吧?

一般用Map insertMap进行插入对吧。

插入完成之后,在插入方法下面,使用

insertMap.get(“想要过去的值名称”)

就可以获取到插入数据的对应的值了。
这个是啥意思啊

在MyBatis中,执行insert操作后,可以通过以下方式获取自动生成的ID:

  1. 实体类中定义id属性,并添加@GeneratedValue注解:
    java
    @Data
    public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    // ...
    }
  2. 插入数据后,id的值会自动填充:
    java
    User user = new User();
    user.setName("jack");
    userMapper.insert(user);
    Long id = user.getId(); // 这里可以获取id的值
  3. 也可以在insert语句后通过SELECT LAST_INSERT_ID()获取:
    xml insert into user (name) values (#{name})
SELECT LAST_INSERT_ID() java User user = new User(); user.setName("jack"); userMapper.insertUser(user); Long id = user.getId(); // 这里可以获取id的值 4. 如果使用Map传参,可以在insert后像你说的那样通过key获取返回的值: xml insert into user (name) values (#{name}) java Map params = new HashMap<>(); params.put("name", "jack"); userMapper.insertUser(params); Long id = (Long)params.get("id"); // 这里获取id的值 希望上述说明能帮助你理解MyBatis中获取自动生成ID的方法。
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7492160
  • 除此之外, 这篇博客: MyBatis使用Map和模糊查询中的 一、使用map传参插入数据 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1.编写Dao接口/Mapper层 使用Map做参数

     //Dao接口/Mapper层 使用Map传参
        int addUser2(Map<String,Object> map);
    

    2.编写Mapper.xml中的sql语句

    <!--    传递map的key-->
        <insert id="addUser2" parameterType="map">
            insert into firend_mq.users (id,username,password) value (#{userid},#{name},#{pwd})
        </insert>
    

    3.编写测试类

     //使用map传参添加插入
        @Test
        public void addUser2(){
    
            SqlSession sqlSession = Mybatisutil.getSqlSession();
            UserDao mapper = sqlSession.getMapper(UserDao.class);
            Map<String, Object> map = new HashMap<String, Object>();
    
            map.put("userid",4);
            map.put("name","好人");
            map.put("pwd",1111111);
    
            mapper.addUser2(map);
            sqlSession.commit();
            sqlSession.close();
        }
    

    在这里插入图片描述
    使用Map传参也可以批量插入数据
    MyBatis 批量插入/修改/删除数据(MySql)

可以参考下这个 http://t.csdn.cn/aqdOx