You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MyBatis动态列插入:如何获取动态列对应属性值?

解决方案

你可以在???的位置填写#{${item}},利用MyBatis的OGNL表达式嵌套解析来动态获取对应属性的值。

完整的SQL语句示例

<insert id="insertWording" parameterType="my.pkg.Wording">
INSERT INTO wordings
(id, parentId, <foreach collection="@my.pkg.LangUtls@getLangs()" item="item" separator=",">${item}</foreach>)
VALUES
(#{id}, #{parentId}, <foreach collection="@my.pkg.LangUtls@getLangs()" item="item" separator=","> #{${item}} </foreach>)
</insert>

原理说明

  • ${item}会先被MyBatis解析为LangUtils.getLangs()返回的具体属性名(比如prop1、prop2)
  • 外层的#{}会基于这个解析后的属性名,从传入的Wording实例中获取对应属性的值,同时还能自动处理SQL注入问题,比直接使用${}更安全

内容的提问来源于stack exchange,提问作者feiyuerenhai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:15:21