欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于mybatis resulttype 返回值異常的問(wèn)題

 更新時(shí)間:2021年08月25日 15:10:24   作者:光滑的禿頭  
這篇文章主要介紹了mybatis resulttype 返回值異常的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis resulttype 返回值異常

在使用mybatis時(shí)。resulttype返回自定義的類(lèi)時(shí),可能返回的類(lèi)中字段數(shù)據(jù)存在缺失。

例如:resulttype = "student" 但是當(dāng)中有些字段為空

原因是因?yàn)閿?shù)據(jù)庫(kù)字段和實(shí)體類(lèi)字段不對(duì)應(yīng)導(dǎo)致的。 mybatis底層 查詢(xún)數(shù)據(jù)返回會(huì)更據(jù)數(shù)據(jù)庫(kù)的字段和實(shí)體類(lèi)的字段進(jìn)行匹配,不區(qū)分大小寫(xiě)。但是字段不一樣就無(wú)法傳遞值

例如:數(shù)據(jù)庫(kù)字段為:s_name 實(shí)體類(lèi)字段為 name

處理方式1:

在查詢(xún)時(shí)添加別名 select s_name as name from student 別名對(duì)于實(shí)體類(lèi)當(dāng)中的字段。

處理方式2:

返回一個(gè)resultMap map配置當(dāng)中指定數(shù)據(jù)庫(kù)中的列和實(shí)體類(lèi)的類(lèi)進(jìn)行對(duì)應(yīng)

<id column="s_name" jdbcType="VARCHAR" property="name"/>

mybatis resultType="map"的常見(jiàn)問(wèn)題

在配置數(shù)據(jù)源的配置文件中,配置Mybatis的SqlSessionFactoryBean

一、map的key值 與select的字段順序的不一致問(wèn)題

解決方法:

resultType="map" 修改為 resultType="java.util.LinkedHashMap"

二、值為null的返回map中沒(méi)相應(yīng)的key

解決方法:

1.查詢(xún)字段使用ifnull函數(shù)(可空字段較多時(shí),不推薦)

2.修改mybatis配置

springmvc:

創(chuàng)建mybatis-config.xml

<?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> 
        <!-- 當(dāng)返回?cái)?shù)據(jù)類(lèi)型為map,設(shè)置callSettersOnNulls會(huì)把值為null的key也返回 -->
        <setting name="callSettersOnNulls" value="true"/> 
    </settings>
</configuration>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:/META-INF/spring/mybatis-config.xml" />
    <property name="mapperLocations">
    <array>
      <value>classpath*:/com/xxx/mapper/*.xml</value>
    </array>
  </property>
</bean>

springboot:

配置文件:mybatis.configuration.call-setters-on-nulls=true

注解方式:

import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;  
import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.Configuration;  
  
/** 
 * mybatis 注解版  
 * 
 */  
@Configuration  
public class MybatisConfig {  
  
    @Bean  
    public ConfigurationCustomizer configurationCustomizer() {  
        return new ConfigurationCustomizer() {  
  
            @Override  
            public void customize(org.apache.ibatis.session.Configuration configuration) {  
                configuration.setMapUnderscoreToCamelCase(true);//設(shè)置駝峰命名規(guī)則 
                configuration.setCallSettersOnNulls(true);
            }  
        };  
    }  
}  

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文徹底搞定Java哈希表和哈希沖突

    一文徹底搞定Java哈希表和哈希沖突

    本文介紹了什么是哈希表?什么是哈希函數(shù)?什么是哈希沖突?三個(gè)問(wèn)題的解決方案,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • MyBatis元素resultMap介紹及使用詳解

    MyBatis元素resultMap介紹及使用詳解

    這篇文章主要介紹了MyBatis元素resultMap介紹及使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • idea鼠標(biāo)控制放大縮小的操作

    idea鼠標(biāo)控制放大縮小的操作

    這篇文章主要介紹了idea鼠標(biāo)控制放大縮小的操作教程,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 一篇文章弄懂Java8中的時(shí)間處理

    一篇文章弄懂Java8中的時(shí)間處理

    Java8以前Java處理日期、日歷和時(shí)間的方式一直為社區(qū)所詬病,將 java.util.Date設(shè)定為可變類(lèi)型,以及SimpleDateFormat的非線程安全使其應(yīng)用非常受限,下面這篇文章主要給大家介紹了關(guān)于Java8中時(shí)間處理的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Java利用AlphaComposite類(lèi)合并圖像

    Java利用AlphaComposite類(lèi)合并圖像

    這篇文章主要介紹了Java利用AlphaComposite類(lèi)合并圖像,幫助大家更好的利用Java處理圖像,感興趣的朋友可以了解下
    2020-10-10
  • mybatis查詢(xún)字段為null設(shè)置為0的操作

    mybatis查詢(xún)字段為null設(shè)置為0的操作

    這篇文章主要介紹了mybatis查詢(xún)字段為null設(shè)置為0的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Spring系列之事物管理

    Spring系列之事物管理

    這篇文章主要介紹了Spring系列之事物管理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring方面知識(shí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • Spring Boot系列教程之7步集成RabbitMQ的方法

    Spring Boot系列教程之7步集成RabbitMQ的方法

    RabbitMQ 即一個(gè)消息隊(duì)列,主要是用來(lái)實(shí)現(xiàn)應(yīng)用程序的異步和解耦,同時(shí)也能起到消息緩沖,消息分發(fā)的作用。下面這篇文章主要給大家介紹了關(guān)于Spring Boot之7步集成RabbitMQ的相關(guān)資料,需要的朋友可以參考下
    2018-11-11
  • 如何理解和運(yùn)用ClassLoader

    如何理解和運(yùn)用ClassLoader

    這篇文章主要介紹了如何理解和運(yùn)用 ClassLoader,幫助大家更好的理解和使用JVM,感興趣的朋友可以了解下
    2021-01-01
  • java實(shí)現(xiàn)大文本文件拆分

    java實(shí)現(xiàn)大文本文件拆分

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)大文本文件拆分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評(píng)論