Mybatis中返回类型非vo时,字段值为Null时,会自动过滤
一、场景:
程序中需要用List
二、概述:
1)如果返回值是List
三、解决方案:
1)配置文件(大型项目都是统一配置,很难去修改)
<settings>
<!-- 设置返回HashMap,字段值为null时保存key,如果不设置默认是false -->
<setting name="callSettersOnNulls" value="true"/>
</settings>
2)返回NULL字符串代替,在java中解析时用字符串判断校验
--用nvl函数判断转换成字符串'NULL'
SELECT C.CONS_NO, NVL(D.CUST_NO,'NULL') CUST_NO, NVL(C.CUST_NAME,'NULL') CUST_NAME
FROM C_CUST D,C_CONS C
WHERE C.CUST_ID = D.CUST_ID(+)
List<Map<String,String>> list = dao.queryConsInfo();
for(Map<String,String> map : list){
for (Map.Entry<String,String> entry : map.entrySet()) {
String key = entry.getKey();
String val = entry.getValue();
//NULL字符串去判断控制
if("NULL".equals(val) || StringUtils.isBlank(val)){
//业务代码...
}
}
}
还没有评论,来说两句吧...