开发中mybatis的一些常见问题记录
一、oracle数据库通过mybatis的批量插入的两种方式
方式1
1 2 3 4 | insert into table_tmp (id,v1,v2,v3,v4) SELECT A.*,OSM_VIID_DEVICE_UTSID.nextval FROM ( <foreach item= "item" index = "index" collection= "list" separator= "union all" > SELECT #{item.id},#{item.v1},#{item.v2},#{item.v3},#{item.v4} FROM DUAL </foreach> ) A |
其中item为批量插入的list中的实体对象,id,v1,v2...是对象中的属性。如果允许空值的情况,不要忘记把格式写成这样#{item.v1,jdbcType=VARCAHR},
方式二
insert all <foreach item="item" index="index" collection="list" separator=""> into table_tmp (id,v1,v2,v3) values (#{item.id},#{item.v1},#{item.v2},#{item.v3}) </foreach> select 1 from dual
跟方式一一样,都需要注意空值的情况。
二、mybatis的if的字符串的等值判断写法
在检索的时候,经常会用到mybatis的if判断,有时候一个字段通过多个枚举,代表多种含义,例如字符串1,代表查询情况1,字符串2,代表情况2
如果写成这样:
<if test="option != '' and option== '1'"></if>
那上面判断不会成功,正确的写法应该是:
<if test="option != '' and option== '1'.toString()"></if>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步