亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mybatis有查詢結果但存不進實體類的解決方案

 更新時間:2020年11月30日 17:18:30   作者:ming-world  
這篇文章主要介紹了Mybatis有查詢結果但存不進實體類的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題描述

使用Mybatis查詢得到實體類

表定義如下

成員ID 成員姓名
member_id member_name

對應的實體類如下

public class Member {
  private Integer memberId;
  private String memberName;
  // 省略getter和setter
}

對應的Mapper.xml如下

<select id="selectMemberByMemberName" resultType="Member">
  SELECT *
  FROM member
  WHERE member_name = #{memberName}
</select>

通過以下代碼得到的member居然是null,這是為什么呢?

Member member = memberMapper.selectMemberByMemberName(memberName);

在日志我啟用了DEBUG模式,發(fā)現(xiàn)查詢結果集是有返回數(shù)據(jù)的,但是寫不進去Member實體類中,最后發(fā)現(xiàn)是因為數(shù)據(jù)庫與Java命名的規(guī)范是不一樣的,需要轉換,Mybatis也提供了相對應的駝峰命名轉換法。

例如member_id對應memberId,但是默認是不啟用的,所以需要手動啟動。

解決方法

如果使用Mybatis配置文件,則可以按如下配置:

<?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>
    <!-- 開啟駝峰命名轉換 -->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
  </settings>
</configuration>

如果是springboot集成的,則可以做如下配置

mybatis:
 configuration:
  mapUnderscoreToCamelCase: true # 開啟駝峰命名轉換法

按照以上配置后重新訪問則可以獲得一個查詢后的實體類。

補充知識:mybatis查詢參數(shù)中既有 實體類參數(shù)又有基本類型參數(shù) 解決方案

這個方法真實有效,直接上代碼

DAO中的查詢方法

public LogisticNodes findFirstNode(

@Param("ln")LogisticNodes ln,@Param("stringId")String stringId);

第一個參數(shù)為實體類,需要加上@param()注解

xml中的寫法

SELECT
      <include refid="logisticNodesColumns"/>
    FROM
      order_logistic_nodes a
    <where>           
        <if test="ln.id != null and ln.id !=''">
           AND a.id = #{ln.id,jdbcType=VARCHAR}
        </if>
        <if test="ln.nodeName != null and ln.nodeName !=''">
           AND a.node_name = #{ln.nodeName,jdbcType=VARCHAR}
        </if>
        <if test="ln.nodeSort != null">
           AND a.node_sort = #{ln.nodeSort,jdbcType=DECIMAL}
        </if>
    </where>
    and
      a.logistic_type IN (
        SELECT
          s.logistic_type
        FROM
          order_logistic_nodes s
      <where>           
        <if test="stringId != null and stringId !=''">
           s.id = #{stringId,jdbcType=VARCHAR}
        </if>
      </where>
    )
    order by a.node_sort
    limit 1

xml中,取實體類的屬性前面要加上類的引用

以上這篇Mybatis有查詢結果但存不進實體類的解決方案就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot3整合Druid監(jiān)控功能的項目實踐

    SpringBoot3整合Druid監(jiān)控功能的項目實踐

    Druid連接池作為一款強大的數(shù)據(jù)庫連接池,提供了豐富的監(jiān)控和管理功能,成為很多Java項目的首選,本文主要介紹了SpringBoot3整合Druid監(jiān)控功能的項目實踐,感興趣的可以了解一下
    2024-01-01
  • Java的JNI快速入門教程(推薦)

    Java的JNI快速入門教程(推薦)

    下面小編就為大家?guī)硪黄狫ava的JNI快速入門教程(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 使用eclipse 實現(xiàn)將springboot項目打成jar包

    使用eclipse 實現(xiàn)將springboot項目打成jar包

    這篇文章主要介紹了使用eclipse 實現(xiàn)將springboot項目打成jar包的流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot2 集成log4j2日志框架的實現(xiàn)

    SpringBoot2 集成log4j2日志框架的實現(xiàn)

    這篇文章主要介紹了SpringBoot2 集成log4j2日志框架的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 詳解lambda表達式foreach性能分析

    詳解lambda表達式foreach性能分析

    這篇文章主要介紹了詳解lambda表達式foreach性能分析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Java 數(shù)據(jù)庫連接池詳解及簡單實例

    Java 數(shù)據(jù)庫連接池詳解及簡單實例

    這篇文章主要介紹了Java 數(shù)據(jù)庫連接池詳解及簡單實例的相關資料,需要的朋友可以參考下
    2016-12-12
  • springboot整合springsecurity與mybatis-plus的簡單實現(xiàn)

    springboot整合springsecurity與mybatis-plus的簡單實現(xiàn)

    Spring Security基于Spring開發(fā),項目中如果使用Spring作為基礎,配合Spring Security做權限更加方便,而Shiro需要和Spring進行整合開發(fā)。因此作為spring全家桶中的Spring Security在java領域很常用
    2021-10-10
  • Java?Timer與TimerTask類使程序計時執(zhí)行

    Java?Timer與TimerTask類使程序計時執(zhí)行

    這篇文章主要介紹了Java定時器中的Timer和TimerTask的原理。Timer主要用于Java線程里指定時間或周期運行任務,它是線程安全的,但不提供實時性(real-time)保證。接下來就跟隨小編一起深入了解Timer和TimerTask吧
    2022-02-02
  • JSP安全開發(fā)之XSS漏洞詳解

    JSP安全開發(fā)之XSS漏洞詳解

    XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意腳本代碼,而程序?qū)τ谟脩糨斎雰?nèi)容未過濾,當用戶瀏覽該頁之時,嵌入其中Web里面的腳本代碼會被執(zhí)行,從而達到惡意攻擊用戶的特殊目的。
    2016-09-09
  • Java中文件操作功能小結

    Java中文件操作功能小結

    這篇文章主要為大家整理了一些Java中文件操作功能的相關資料,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-05-05

最新評論