myBatis有条件地插入非空值

时间:2016-08-30 07:29:07

标签: mysql mybatis ibatis

我想仅在它为null时才插入非空值。如果为null,则让DB插入默认值。

<insert id ="inventorySave">
<[CDATA[

INSET INTO inventory  
(itemname,amount,id,level) 
values
]]
<foreach item="inventory" collection="inventoryies" separator=",">
<[CDATA[
(#{inventory.itemName},#{inventory.amount}, #{inventory.id}, #{inventory.level})
]]
</foreach>
</insert>

我想查看&#39;等级&#39;的值。是一个有效的字符串:&#39;普通&#39;,&#39;重要&#39;严重&#39;。如果它有空字符串或null,则不应指定任何字符串,并让数据库决定插入其默认值。

任何人都让我知道如何有条件地插入记录。

1 个答案:

答案 0 :(得分:1)

将所有dymanic值等同于 jdbcType ,即数据库列类型,以实现您的期望。

例如,根据您的上述查询更改level,如下所示,其他实体也是如此:

    #{inventory.level,jdbcType=NVARCHAR} 
    //assuming the equivalent column type in database for itemname is varchar.