mybatis返回map类型数据空值字段不显示(三种解决方法)
2017-08-01 17:20
776 查看
一、查询sql添加每个字段的判断空
1
二、ResultType利用实体返回,不用map
三、springMVC+mybatis查询数据,返回resultType=”map”时,如果数据为空的字段,则该字段省略不显示,可以通过添加配置文件,规定查询数据为空是则返回null。
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
spring-mybatis.xml
2
3
4
5
6
7
1
2
3
4
5
6
7
如果想要配置rate的默认值,例如“”字符串,则可以建立一个类,实现Mybatis的TypeHandler接口
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
在sql.xml文件定义与使用如下如下
IFNULL(rate,'') as rate1
1
二、ResultType利用实体返回,不用map
三、springMVC+mybatis查询数据,返回resultType=”map”时,如果数据为空的字段,则该字段省略不显示,可以通过添加配置文件,规定查询数据为空是则返回null。
<?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>1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
spring-mybatis.xml
<!-- spring和MyBatis完美整合,添加mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-configuration.xml"/> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:mapping/*.xml"></property> </bean>1
2
3
4
5
6
7
1
2
3
4
5
6
7
如果想要配置rate的默认值,例如“”字符串,则可以建立一个类,实现Mybatis的TypeHandler接口
public class EmptyStringIfNull implements TypeHandler<String> { @Override public String getResult(ResultSet rs, String columnName) throws SQLException { return (rs.getString(columnName) == null) ? "" : rs.getString(columnName); } @Override public String getResult(ResultSet rs, int columnIndex) throws SQLException { return (rs.getString(columnIndex) == null) ? "" : rs.getString(columnIndex); } @Override public String getResult(CallableStatement cs, int columnIndex) throws SQLException { return (cs.getString(columnIndex) == null) ? "" : cs.getString(columnIndex); } @Override public void setParameter(PreparedStatement ps, int arg1, String str, JdbcType jdbcType) throws SQLException { }}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
在sql.xml文件定义与使用如下如下
<resultMap id="find" type="java.util.LinkedHashMap"> <result property="name" column="name" /> <result property="phone" column="phone" /> <result property="rate" column="rate" typeHandler="com.mybatis.EmptyStringIfNull"/> </resultMap>
相关文章推荐
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示
- mybatis返回map类型数据空值字段不显示
- 使用MyBatis查询int类型字段,返回NULL值时报异常的解决方法
- MyBatis的resultMap只返回一条数据的解决方法
- springMVC+mybatis查询数据,返回resultType=”map”时,如果数据为空的字段,则该字段省略不显示的解决方案
- HTTP请求数据返回解析Josn org.codehaus.jackson.map.JsonMappingException的解决方法
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
- ajax处理服务器返回的三种数据类型方法
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- ajax后台返回的数据为空前台显示出现undefined的解决方法
- Mybatis 查询int类型数据,返回记录条数为0时报错问题解决
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
- Android ListView数据绑定显示的三种解决方法