开发中mybatis的一些常见问题记录

一、oracle数据库通过mybatis的批量插入的两种方式

方式1

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>

 

转载于:https://www.cnblogs.com/duck-ifox/p/9084317.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值