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

基于mybatis查詢結果映射不到對象的處理

 更新時間:2021年08月25日 14:24:56   作者:別急,已經(jīng)在路上了  
這篇文章主要介紹了mybatis查詢結果映射不到對象的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatis查詢結果映射不到對象

項目場景

使用mybatis+springboot 進行數(shù)據(jù)庫的數(shù)據(jù)查詢操作,一直拿不到返回結果。

問題描述

后端dao層(service層調mapper,方法的返回結果一直null)代碼一直空指針,

APP 中接收數(shù)據(jù)代碼:

 //分類名稱
        Integer blogCategoryId = blog.getBlogCategoryId();//這里有數(shù)據(jù)  22
        BlogCategory category = blogCategoryMapper.getCategoryById(blogCategoryId);//這里返回結果就一直null
        blog.setBlogCategoryName(category.getCategoryName());//導致這里一調用方法就報空指針了。

原因分析

仔細檢查了代碼(debug),controller層+ service層沒問題,那問題坑定再dao層。檢查xml文件,但發(fā)現(xiàn)xml文件中查詢方法的sql代碼寫的沒問題:

 <select id="getCategoryById" parameterType="java.lang.Integer" resultType="com.hhh.blog.entity.BlogCategory">
        SELECT
            category_id,
            category_name,
            category_icon,
            category_rank,
            create_time,
            is_deleted
        FROM
            tb_blog_category
        WHERE
            category_id = #{blogCategoryId}
    </select>

這里理論上沒啥問題,但特么的就是數(shù)據(jù)庫的數(shù)據(jù)映射不到對象中(實體類都是按照數(shù)據(jù)庫數(shù)據(jù)對應的,只多不少)。

解決方案

resultType=“com.hhh.blog.entity.BlogCategory”

返回結果改成使用映射:

<select id="getBlogCategoryPage" resultMap="getBlogCategoryPageMap">

  <resultMap id="getBlogCategoryPageMap" type="com.hhh.blog.entity.BlogCategory">
        <id column="category_id" jdbcType="INTEGER" property="categoryId" />
        <result column="category_name" jdbcType="VARCHAR" property="categoryName" />
        <result column="category_icon" jdbcType="VARCHAR" property="categoryIcon" />
        <result column="category_rank" jdbcType="INTEGER" property="categoryRank" />
        <result column="is_deleted" jdbcType="TINYINT" property="isDeleted" />
        <result column="create_time" jdbcType="DATE" property="createTime" />
    </resultMap>

開啟駝峰式命名匹配也可能解決上述問題。沒試過。建議自己搞起來

mybatis結果映射遇到的問題

錯誤如下

org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found in POJO.User matching [java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String]
### The error may exist in Mapper/UserMapper
### The error may involve test.selectUserById
### The error occurred while handling results
### SQL: SELECT * FROM USER WHERE id=?
### Cause: org.apache.ibatis.executor.ExecutorException: No constructor found in POJO.User matching [java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String]

解決方案

最后,將User構造器中int改為Integer即可、

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

相關文章

  • JavaSE反射、枚舉、lambda表達式常用方法舉例

    JavaSE反射、枚舉、lambda表達式常用方法舉例

    這篇文章主要介紹了JavaSE反射、枚舉、lambda表達式常用方法的相關資料,反射允許在運行時檢查和操作類、方法和屬性,枚舉提供了一種更安全和優(yōu)雅的方式來定義常量,而Lambda表達式則簡化了函數(shù)式接口的實現(xiàn),需要的朋友可以參考下
    2024-12-12
  • 詳解Java并發(fā)工具類之CountDownLatch和CyclicBarrier

    詳解Java并發(fā)工具類之CountDownLatch和CyclicBarrier

    在JDK的并發(fā)包中,有幾個非常有用的并發(fā)工具類,它們分別是:CountDownLatch、CyclicBarrier、Semaphore和Exchanger,本文主要來講講其中CountDownLatch和CyclicBarrier的使用,感興趣的可以了解一下
    2023-06-06
  • 深入理解Java8雙冒號::的使用

    深入理解Java8雙冒號::的使用

    這篇文章主要介紹了深入理解Java8雙冒號::的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • xxl-job如何濫用netty導致的問題及解決方案

    xxl-job如何濫用netty導致的問題及解決方案

    本篇文章講解xxl-job作為一款分布式任務調度系統(tǒng)是如何濫用netty的,導致了怎樣的后果以及如何修改源碼解決這些問題,netty作為一種高性能的網(wǎng)絡編程框架,十分受大家喜愛,今天就xxl-job濫用netty這一問題給大家詳細下,感興趣的朋友一起看看吧
    2021-05-05
  • Java去除字符串中的空格實現(xiàn)方式

    Java去除字符串中的空格實現(xiàn)方式

    這篇文章主要介紹了Java去除字符串中的空格實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • 使用Spring來創(chuàng)建一個簡單的工作流引擎

    使用Spring來創(chuàng)建一個簡單的工作流引擎

    這篇文章主要給大家介紹了關于使用Spring來創(chuàng)建一個簡單的工作流引擎的相關資料,需要的朋友可以參考下
    2006-12-12
  • Opencv創(chuàng)建車牌圖片識別系統(tǒng)方法詳解

    Opencv創(chuàng)建車牌圖片識別系統(tǒng)方法詳解

    本文主要介紹了一個基于spring?boot+maven+opencv實現(xiàn)的圖像識別及訓練項目,可以實現(xiàn)車牌識別功能,感興趣的可以跟隨小編一起試一試
    2022-01-01
  • JAVA使用POI獲取Excel的列數(shù)與行數(shù)

    JAVA使用POI獲取Excel的列數(shù)與行數(shù)

    Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。 下面這篇文章給大家介紹了JAVA使用POI獲取Excel列數(shù)和行數(shù)的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Mybatis中如何設置sqlSession自動提交

    Mybatis中如何設置sqlSession自動提交

    在MyBatis中,默認情況下,獲取的SqlSession對象不會自動提交事務,這意味著在進行更新、刪除或插入等操作后,需要顯式調用commit方法來提交事務,但是,可以在獲取SqlSession時通過將openSession方法的參數(shù)設置為true
    2024-09-09
  • Java聊天室之實現(xiàn)運行服務器與等待客戶端連接

    Java聊天室之實現(xiàn)運行服務器與等待客戶端連接

    這篇文章主要為大家詳細介紹了Java簡易聊天室之實現(xiàn)運行服務器程序與等待客戶端程序連接功能,文中的示例代碼講解詳細,需要的可以了解一下
    2022-10-10

最新評論