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

mybatis+lombok出現(xiàn)java.lang.IndexOutOfBoundsException錯誤及解決

 更新時間:2025年02月18日 09:08:47   作者:一顆小小的石頭.  
在使用MyBatis和Lombok時,如果遇到j(luò)ava.lang.IndexOutOfBoundsException問題,是因為MyBatis在嘗試將查詢結(jié)果封裝成Java對象時,找不到構(gòu)造函數(shù)中對應(yīng)的字段,這通常是由于Lombok的@Builder注解生成了全參構(gòu)造函數(shù)

mybatis+lombok出現(xiàn)java.lang.IndexOutOfBoundsException

問題描述

報錯圖

就是一個簡單的select語句,拿出來單獨運行也是OK的。

select s.sid,s.title,s.url,s.icon,s.cate_id from sites s

跟進錯誤棧調(diào)試發(fā)現(xiàn),報錯是因為mybatis要把select出來的字段包裝成Java對象時,找不到其構(gòu)造函數(shù)中對應(yīng)的字段。

構(gòu)造函數(shù)為啥這5個字段呢。就是因為用了lombok的@Builder方法,這個注解生成了全參的構(gòu)造函數(shù),但沒有這5個參數(shù)的構(gòu)造器。

越界點

這里for循環(huán)constructor.getParameterTypes().length就是全參構(gòu)造器的參數(shù)數(shù)量,我這里是11個。rsw.getColumnNames().get(i)越界報錯。

解釋一下:

rsw是mybatis運行sql得到的列,我這里有5個。所以當(dāng)i循環(huán)超過5時,get(i)會越界。

解決方案

  • 知道原因就知道如何解決了。這里我們需要有無參構(gòu)造函數(shù)。
  • 于是在@Builder上面加@NoArgsConstructor就行了,但是編譯不過。
  • 因為@Builder自帶的全參構(gòu)造器是會被覆蓋的,所以這時候再加@AllArgsConstructor才可以。

最終結(jié)果:

結(jié)果

總結(jié)

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

相關(guān)文章

  • SpringBoot實現(xiàn)多數(shù)據(jù)源的切換實踐

    SpringBoot實現(xiàn)多數(shù)據(jù)源的切換實踐

    這篇主要介紹了SpringBoot實現(xiàn)多數(shù)據(jù)源的切換,本文基于AOP來實現(xiàn)數(shù)據(jù)源的切換,文中通過示例代碼介紹的非常詳細,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解Spring中singleton?bean如何同時服務(wù)多個請求

    詳解Spring中singleton?bean如何同時服務(wù)多個請求

    這篇文章主要介紹了詳解Spring中singleton?bean如何同時服務(wù)多個請求
    2023-02-02
  • 關(guān)于eclipse安裝spring插件報錯An error occurred while collecting items to be installed...解決方案

    關(guān)于eclipse安裝spring插件報錯An error occurred while collecting item

    這篇文章主要介紹了關(guān)于eclipse安裝spring插件報錯An error occurred while collecting items to be installed...解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • java 服務(wù)器接口快速開發(fā)之servlet詳細教程

    java 服務(wù)器接口快速開發(fā)之servlet詳細教程

    Servlet(Server Applet)是Java Servlet的簡稱,稱為小服務(wù)程序或服務(wù)連接器,用Java編寫的服務(wù)器端程序,具有獨立于平臺和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù),生成動態(tài)Web內(nèi)容
    2021-06-06
  • Spring Security使用單點登錄的權(quán)限功能

    Spring Security使用單點登錄的權(quán)限功能

    本文主要介紹了Spring Security使用單點登錄的權(quán)限功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 使用Spring Expression Language (SpEL)全面解析表達式

    使用Spring Expression Language (SpEL)全面解析表達式

    這篇文章主要介紹了使用Spring Expression Language (SpEL)全面解析表達式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java后端中dto、vo、entity的區(qū)別淺析

    Java后端中dto、vo、entity的區(qū)別淺析

    這篇文章主要給大家介紹了關(guān)于Java后端中dto、vo、entity區(qū)別的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-01-01
  • SpringBoot使用jsr303校驗的實現(xiàn)

    SpringBoot使用jsr303校驗的實現(xiàn)

    這篇文章主要介紹了SpringBoot使用jsr303校驗的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java Big Number操作BigInteger及BigDecimal類詳解

    Java Big Number操作BigInteger及BigDecimal類詳解

    這篇文章主要為大家介紹了Java Big Number操作BigInteger及BigDecimal類詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Java利用泛型實現(xiàn)折半查找法

    Java利用泛型實現(xiàn)折半查找法

    泛型是JAVA重要的特性,使用泛型編程,可以使代碼復(fù)用率提高。查找作為泛型的一個簡單應(yīng)用,本文將使用泛型實現(xiàn)折半查找法,感興趣的可以了解一下
    2022-08-08

最新評論