springboot 项目 多数据源 mybatis有一条sql查询返回的List<map<>> sql查询有字段没有值 映射到map中,map中某些字段 不存在 在不修改slq解决的前提下其他解决方法
时间: 2023-12-14 16:37:42 浏览: 247
SpringBoot +Mybatis xml方式配置SQL Demo源码下载 修改数据库字段与实体类含有下滑线不对应问题
可以在查询时对不存在的字段给一个默认值,这样就能保证返回的Map中该字段一定存在。例如,假设查询的SQL中有一个字段叫做"field1",但是有些数据该字段没有值,你可以这样写SQL:
```
SELECT IFNULL(field1, 'default_value') AS field1, other_field1, other_field2 FROM table_name;
```
这样无论"field1"字段是否有值,都会以"field1"为key存储到Map中,并且value要么是字段的值,要么是你设置的默认值"default_value"。
另外,如果你使用的是MyBatis框架,可以使用ResultMap中的`<resultMap>`标签中的`<result>`标签指定默认值,例如:
```
<resultMap id="map" type="java.util.Map">
<result column="field1" property="field1" jdbcType="VARCHAR" defaultValue="default_value"/>
<result column="other_field1" property="other_field1" jdbcType="VARCHAR"/>
<result column="other_field2" property="other_field2" jdbcType="VARCHAR"/>
</resultMap>
```
这样也能解决Map中某些字段不存在的问题。
阅读全文