关于mybatis进行sql查询字段值为null而键值消失解决办法

有时候进行数据库查询操作的时候,查询结果中一条参数或者有某几个参数为null,这种情况下,参数名都不会返回,解决办法如下:

第一种:mybatis返回值resultType="map" 改成实体类返回

第二种:还是用map接收,默认查询为控的字段不显示,

             所以在mybatisConfig.xml配置文件中加上 <setting name="callSettersOnNulls" value="true"/>

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration>  
  <settings>  
  <!--解决,查询返回结果含null没有对应字段值问题-->  
  <setting name="callSettersOnNulls" value="true"/>  
  </settings>  
</configuration>

然后在spring的配置applicationContext.xml中加上这一段

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath*:mappers/*Mapper.xml"></property>
        <property name="configLocation">
            <value>classpath:mybatisConfig.xml</value>
        </property>

</bean>

第三种:

1、postgresql数据库:

   select COALESCE(D.wk_ptn_cd, '00') as wk_ptn_cd

   判断字段wk_ptn_cd是否为空,空给默认值‘00’,否则取该字段

 

2、非postgresql数据库:Mybatis使用IFNULL(P1,P2)函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_我走路带风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值