mybatise 的foreach标签中执行两条insert sql,第二条可以获取第一条的主键值吗主键是通过函数动态获取的

各位大神,下面的??处的值该怎么取<insertid="xxx"parameterType="java.util.HashMap">BEGIN<iftest="list.... 各位大神,下面的??处的值该怎么取
<insert id="xxx" parameterType="java.util.HashMap">
BEGIN
<if test="list.size() > 0">
<foreach collection="list" item="item" index="index" separator="" close="">
<choose>
<when test="item.id != null and item.id != ''">
update maintable set name=#{item.name} where id = #{item.id};
</when>
<otherwise>
insert into maintable(id,name)
select getkey('maintable'),'xxx' from dual;

insert into childtable(id,maintableid,code) values(getkey('childtable'),??,#{item.code});
</otherwise>
</choose>
</foreach>
</if>
END;
</insert>
展开
 我来答
曾寅彪
2018-11-05 · TA获得超过1853个赞
知道大有可为答主
回答量:2514
采纳率:86%
帮助的人:649万
展开全部
每次插入操作完后SELECT LAST_INSERT_ID(); 就获取了

如果是pdo操作insert
$dbh_w->exec("insert.....");
$id=$dbh_w->lastInsertId();
就直接获取插入id了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式