场景重现: mybatis 在查询的时候,可以返回Map,但是一旦这个字段为空(null)的时候,map里就没有了。我用的是mysql数据库,除了在查询语句上做ifnull判断给它默认值外,需求是即使值为空(null)l也要保存在map中给我返回来 解决方案一(现在个人推荐这种做法,省时省力): 在mybatis的配置文件中加入,mybatis必须3.2版本以上 <settings> <setting name="callSettersOnNulls" value="true"/> </settings> 解决方案二: 在查询语句上做ifnull判断给它默认值外,有没的别的其他办法,让他就算值为null也要保存在map中给我返回来 解决方案三: 解决的办法是用实体(bean)去做返回结果的类型(如果是联合查询查询的话,再一个实体里面添加没有的属性即可)。用实体get方法去获取每个值,这样的话,就算 是数据库中是(NULL)值,你也获取到了你想要的null。不过缺点是要定义实体类,好烦麻烦的说(这种方法不推荐,但是公司有人用) 解决方案四: 使用"case when xxx is null then '' else ... end as XXXX"做默认值(我之前的解决方案), |