MyBatis从数据库取值的时候,当某一字段为null时,如何在返回前端的时候,也包含有这个字段

MyBatis的配置文件中有一个配置是

<configuration>
   <settings>
      <setting name="callSettersOnNulls" value="true"/> <!-- 返回空字段 -->
   </settings>
</configuration>



这就是即便数据库中的某个字段为空也会返回null的属性,这样配置是完全没有问题的,但是刚开始的时候我的控制层的代码如下边被注释掉的

@ResponseBody
@RequestMapping(value="/queryById",method= RequestMethod.POST,produces = "application/json;charset=UTF-8")
public String queryById(String id){
    Map<Object,Object> map = userServiceImp.queryById(id);
    System.out.println("map:"+map);
    Gson gsonSerializeNull = new GsonBuilder().serializeNulls().create();
    String gson = gsonSerializeNull.toJson(map);
    System.out.println(gson);
    return gson;

    /*Map<Object,Object> map = userServiceImp.queryById(id);
    return map;*/
}



这样会导致前端拿不到把鞋字段为null的属性。原因出在了对象向json字符串转化的时候,当改成了上图中未被注释掉的样子的时候,前端就可以取到即便属性值为空的那些属性了。


返回数据库中字段为空的值也可以参考:http://www.open-open.com/lib/view/open1432694378801.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值