我正在做一个使用Spring 3.1.1和MyBatis3.0的项目。如何在使用mybatis时从查询中更改值(null为空字符串)?
我正在尝试将iBatis更改为MyBatis。然而,我正在努力与resultmap。
当使用iBatis时,我可以使用'nullValue'处理像下面这样的查询值。
<resultMap class="java.util.HashMap" id="ChannelData">
<result property="id" javaType="java.lang.String" column="CHANNEL_ID" nullValue=""/>
<result property="code" column="SELECTSCOPE" nullValue="Television"/>
</resultMap>
的问题是那里的MyBatis没有 'NullValue属性'。另外,如果该列为'null',那么mybatis永远不会填充该元素。例如。如果'SELECTSCOPE'为空,则带来{id=aaa}
。我需要这样的数据 - >{id=aaa, code=''}
。无论如何处理这个?
P.S.
我查询了20多列。其中一些需要“”,当值为null时,其他人有自己的默认字符串值(如果我使用iBatis,'nullValue'是magic关键字)我发现一些链接建议使用自定义类型处理程序,但处理程序超过20可能会导致未来的修复或维护混乱。我需要一些简单的方法。
非常感谢:d
===================================== =================================================
我找到了一些方法来使一些空值。它需要一些配置。
- 化妆config.xml文件,其中应当包含的MyBatis配置DTD和像下面
现在<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="callSettersOnNulls" value="true"/> </settings> </configuration>
,我可以得到一些{id="aaa", code = null}
信息设置。这是另外一个问题。我如何设置查询的默认值?例如。如果'code'的值为null,那么我想把默认的String'default'。所以结果应该从 {id="aaa", code=null}
更改为{id="aaa",code="default"}
。可能吗?
谢谢〜
您应该使用“callSettersOnNulls”创建另一个答案并接受该答案。 – luboskrnac