最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis有查詢結(jié)果但存不進(jìn)實(shí)體類的解決方案

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

問題描述

使用Mybatis查詢得到實(shí)體類

表定義如下

成員ID 成員姓名
member_id member_name

對(duì)應(yīng)的實(shí)體類如下

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

對(duì)應(yīng)的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)查詢結(jié)果集是有返回?cái)?shù)據(jù)的,但是寫不進(jìn)去Member實(shí)體類中,最后發(fā)現(xiàn)是因?yàn)閿?shù)據(jù)庫(kù)與Java命名的規(guī)范是不一樣的,需要轉(zhuǎn)換,Mybatis也提供了相對(duì)應(yīng)的駝峰命名轉(zhuǎn)換法。

例如member_id對(duì)應(yīng)memberId,但是默認(rèn)是不啟用的,所以需要手動(dòng)啟動(dòng)。

解決方法

如果使用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>
    <!-- 開啟駝峰命名轉(zhuǎn)換 -->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
  </settings>
</configuration>

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

mybatis:
 configuration:
  mapUnderscoreToCamelCase: true # 開啟駝峰命名轉(zhuǎn)換法

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

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

這個(gè)方法真實(shí)有效,直接上代碼

DAO中的查詢方法

public LogisticNodes findFirstNode(

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

第一個(gè)參數(shù)為實(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中,取實(shí)體類的屬性前面要加上類的引用

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

相關(guān)文章

  • SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù)流程詳解

    SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù)流程詳解

    ShedLock是一個(gè)鎖,官方解釋是他永遠(yuǎn)只是一個(gè)鎖,并非是一個(gè)分布式任務(wù)調(diào)度器。一般shedLock被使用的場(chǎng)景是,你有個(gè)任務(wù),你只希望他在單個(gè)節(jié)點(diǎn)執(zhí)行,而不希望他并行執(zhí)行,而且這個(gè)任務(wù)是支持重復(fù)執(zhí)行的
    2023-02-02
  • druid配置數(shù)據(jù)庫(kù)連接使用密文密碼方式

    druid配置數(shù)據(jù)庫(kù)連接使用密文密碼方式

    這篇文章主要介紹了druid配置數(shù)據(jù)庫(kù)連接使用密文密碼方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,
    2023-12-12
  • mybatis配置對(duì)象包含對(duì)象以及List的方式

    mybatis配置對(duì)象包含對(duì)象以及List的方式

    這篇文章主要介紹了mybatis配置對(duì)象包含對(duì)象以及List的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 如何用Java?幾分鐘處理完?30?億個(gè)數(shù)據(jù)(項(xiàng)目難題)

    如何用Java?幾分鐘處理完?30?億個(gè)數(shù)據(jù)(項(xiàng)目難題)

    現(xiàn)有一個(gè) 10G 文件的數(shù)據(jù),里面包含了 18-70 之間的整數(shù),分別表示 18-70 歲的人群數(shù)量統(tǒng)計(jì),今天小編通過本文給大家講解如何用Java?幾分鐘處理完?30?億個(gè)數(shù)據(jù),這個(gè)問題一直以來是項(xiàng)目難題,今天通過本文給大家詳細(xì)介紹下,感興趣的朋友一起看看吧
    2022-07-07
  • 修改request的parameter的幾種方式總結(jié)

    修改request的parameter的幾種方式總結(jié)

    這篇文章主要介紹了修改request的parameter的幾種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java中l(wèi)ist.foreach不能使用字符串拼接的問題

    Java中l(wèi)ist.foreach不能使用字符串拼接的問題

    這篇文章主要介紹了Java中l(wèi)ist.foreach不能使用字符串拼接的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java職責(zé)鏈模式的深入了解

    Java職責(zé)鏈模式的深入了解

    這篇文章主要為大家介紹了Java職責(zé)鏈模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Java基礎(chǔ)知識(shí)總結(jié)之繼承

    Java基礎(chǔ)知識(shí)總結(jié)之繼承

    這一篇我們來學(xué)習(xí)面向?qū)ο蟮牡诙€(gè)特征——繼承,文中有非常詳細(xì)的基礎(chǔ)知識(shí)總結(jié),對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • knife4j?整合?springboot的過程詳解

    knife4j?整合?springboot的過程詳解

    這篇文章主要介紹了knife4j整合springboot的過程,本次整合springboot版本為2.3.12,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • java郵件發(fā)送簡(jiǎn)單實(shí)現(xiàn)代碼

    java郵件發(fā)送簡(jiǎn)單實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了java郵件發(fā)送簡(jiǎn)單實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評(píng)論

息烽县| 莆田市| 洞口县| 肃宁县| 永泰县| 涪陵区| 舒兰市| 石家庄市| 蛟河市| 花莲县| 睢宁县| 桐城市| 古丈县| 咸阳市| 云霄县| 饶河县| 固原市| 晋州市| 松阳县| 凌云县| 新昌县| 韶山市| 白水县| 滦南县| 华池县| 乐平市| 襄樊市| 忻州市| 大新县| 霍山县| 深水埗区| 西宁市| 同心县| 嘉鱼县| 大连市| 元江| 原阳县| 肇州县| 阳城县| 德化县| 灌阳县|