sql-server mybatis返回没有对象的插入字段的id

axkjgtzd  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(224)

我知道这个问题被问了好几次,但是大多数的答案都是针对我们将对象作为参数传递的场景。
我正试图使用mybatis向sql server中插入一行,我想要插入行的id。
我没有传递对象,而是传递原始变量,如Integer、Long、Double

  1. <insert id="insertUserSummary" useGeneratedKeys="true" >
  2. INSERT INTO BRS_USER_SUMMARY
  3. (BRS_BRM_ID, BRS_USR_ID)
  4. VALUES
  5. (#{masterid}, #{userid} )
  6. </insert>

我只是在调用函数中传递了masterid和userid,它执行了插入操作,但我没有返回id。注意-我没有传递一个对象作为参数,而是传递了两个变量。

  • 谢谢-谢谢
vpfxa7rd

vpfxa7rd1#

insert查询获取生成的id的一种方法是传递一个Map,该Map将用于保存生成的行的id:

  1. <insert id="insertUserSummary" useGeneratedKeys="true" keyColumn="id" keyProperty="idMap.id">
  2. INSERT INTO BRS_USER_SUMMARY (BRS_BRM_ID, BRS_USR_ID)
  3. VALUES (#{masterid}, #{userid})
  4. </insert>

Map器:

  1. int insertUserSummary(@Param("masterid") int masterId, @Param("userid") int userId, @Param("idMap") Map<String, Integer> idMap);

用法:

  1. Map<String, Long> idMap = new HashMap<>();
  2. int affectedRows = mapper.insertUserSummary(42, 31415, idMap);
  3. int insertedRowId = idMap.get("id");

相关问题