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

mybatisplus解決駝峰命名映射問題詳解

 更新時(shí)間:2020年09月08日 10:28:22   作者:ranchill  
這篇文章主要介紹了mybatisplus解決駝峰命名映射問題詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

問題的提出

今天我在測試mybatis的時(shí)候,發(fā)現(xiàn)查詢出來的一些字段為null,而且這些字段都是駝峰命名了的。所以我首先就想到了是數(shù)據(jù)庫表字段和類映射出了問題。

解決辦法

一、理解spring-mybatis.xml中關(guān)于駝峰命名的配置

mybatisplus是mybatis的升級版,所以配置還是有點(diǎn)兒差別,如果是mybatis的話,直接在configuration中配置就行了,如下:

<?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" />
    <setting name="cacheEnabled" value="false"/>
    <setting name="lazyLoadingEnabled" value="false"/>
    <setting name="aggressiveLazyLoading" value="true"/>
    <setting name="logImpl" value="LOG4J2"/>
  </settings>
</configuration> 

但是mybatisplus的駝峰命名配置是在MP全局配置中完成的

廢話不說,直接上代碼

  <!-- MP 全局配置 -->
  <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
    <!-- 全局的主鍵策略 -->
    <property name="idType" value="0"/>
    <!--映射數(shù)據(jù)庫下劃線字段名到數(shù)據(jù)庫實(shí)體類的駝峰命名的映射-->
    <property name="dbColumnUnderline" value="true"/>
  </bean>

二、在xml代碼中正確的映射類和表

1、使用resultType直接映射到實(shí)體類

直接上代碼:

  <resultMap id="userVoResultMap" type="com.ranqing.model.vo.UserVo">
    <id column="id" property="id" jdbcType="BIGINT"/>
    <result column="login_name" property="loginName" jdbcType="VARCHAR"/>
    <result column="name" property="name" jdbcType="VARCHAR"/>
    <result column="password" property="password" jdbcType="VARCHAR"/>
    <result column="sex" property="sex" jdbcType="TINYINT"/>
    <result column="age" property="age" jdbcType="TINYINT"/>
    <result column="user_type" property="userType" jdbcType="TINYINT"/>
    <result column="status" property="status" jdbcType="TINYINT"/>
    <result column="organization_id" property="organizationId" jdbcType="INTEGER"/>
    <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
    <result column="phone" property="phone" jdbcType="VARCHAR"/>

    <result column="organizationName" property="organizationName" jdbcType="VARCHAR"/>

    <collection property="rolesList" ofType="Role">
      <id column="roleId" property="id"/>
      <result column="roleName" property="name"/>
    </collection>
  </resultMap>

  <!-- 通用查詢結(jié)果列-->
  <sql id="Base_Column_List">
    id, login_name AS loginName, name, password, salt, sex, age, phone, user_type AS userType, status, organization_id AS organizationId, create_time AS createTime
  </sql>

  <!--驗(yàn)證用戶登錄-->
  <select id="selectUserByLoginNameAndPwd" resultType="com.ranqing.model.vo.UserVo">
     SELECT
    <include refid="Base_Column_List"/>
    from user
    where login_name=#{loginName} and password=#{password}

  </select>

注意:
1、凡是需要駝峰的字段都要用“as”取別名,然后直接resultType到UserVo上
2、這種方法不用駝峰命名也沒關(guān)系,

  <!-- MP 全局配置 -->
  <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
    <!-- 全局的主鍵策略 -->
    <property name="idType" value="0"/>
    <!--映射數(shù)據(jù)庫下劃線字段名到數(shù)據(jù)庫實(shí)體類的駝峰命名的映射-->
    <property name="dbColumnUnderline" value="false"/>
  </bean>

dbColumnUnderline為true或false都可以

2、使用駝峰命名映射

先上代碼:

  <resultMap id="userVoResultMap" type="com.ranqing.model.vo.UserVo">
    <id column="id" property="id" jdbcType="BIGINT"/>
    <result column="login_name" property="loginName" jdbcType="VARCHAR"/>
    <result column="name" property="name" jdbcType="VARCHAR"/>
    <result column="password" property="password" jdbcType="VARCHAR"/>
    <result column="sex" property="sex" jdbcType="TINYINT"/>
    <result column="age" property="age" jdbcType="TINYINT"/>
    <result column="user_type" property="userType" jdbcType="TINYINT"/>
    <result column="status" property="status" jdbcType="TINYINT"/>
    <result column="organization_id" property="organizationId" jdbcType="INTEGER"/>
    <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
    <result column="phone" property="phone" jdbcType="VARCHAR"/>

    <result column="organizationName" property="organizationName" jdbcType="VARCHAR"/>

    <collection property="rolesList" ofType="Role">
      <id column="roleId" property="id"/>
      <result column="roleName" property="name"/>
    </collection>
  </resultMap>

  <!-- 通用查詢結(jié)果列-->
  <sql id="Base_Column_List">
    id, login_name , name, password, salt, sex, age, phone, user_type , status, organization_id , create_time
  </sql>

  <!--驗(yàn)證用戶登錄-->
  <select id="selectUserByLoginNameAndPwd" resultMap="userVoResultMap">
     SELECT
    <include refid="Base_Column_List"/>
    from user
    where login_name=#{loginName} and password=#{password}

  </select>

注意:

1、這種方法是使用了駝峰命名了的,所有一定要在MP中設(shè)置駝峰命名

  <!-- MP 全局配置 -->
  <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
    <!-- 全局的主鍵策略 -->
    <property name="idType" value="0"/>
    <!--映射數(shù)據(jù)庫下劃線字段名到數(shù)據(jù)庫實(shí)體類的駝峰命名的映射-->
    <property name="dbColumnUnderline" value="true"/>
  </bean>

dbColumnUnderline必須為true

2、既然使用了駝峰命名,就自然不能再數(shù)據(jù)庫字段上用“as”了。

到此這篇關(guān)于mybatisplus解決駝峰命名映射問題詳解的文章就介紹到這了,更多相關(guān)mybatisplus 駝峰命名映射內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea 解決用骨架創(chuàng)建項(xiàng)目過慢的操作方式

    idea 解決用骨架創(chuàng)建項(xiàng)目過慢的操作方式

    這篇文章主要介紹了idea 解決用骨架創(chuàng)建項(xiàng)目過慢的操作方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • springboot加載配值文件的實(shí)現(xiàn)步驟

    springboot加載配值文件的實(shí)現(xiàn)步驟

    本文主要介紹了springboot加載配值文件的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • 詳解Java8 新特性之日期API

    詳解Java8 新特性之日期API

    Java 8 在包java.time下包含了一組全新的時(shí)間日期API。下面通過示例給大家講解java8 新特征日期api的相關(guān)知識,感興趣的朋友一起看看吧
    2017-07-07
  • Java線程中的interrupt方法解讀

    Java線程中的interrupt方法解讀

    這篇文章主要介紹了Java線程中的interrupt方法解讀,Java中的interrupt是一種線程間通信的機(jī)制,用于請求中斷線程的執(zhí)行。當(dāng)一個(gè)線程調(diào)用另一個(gè)線程的interrupt()方法時(shí),被調(diào)用線程會收到一個(gè)中斷信號,可以根據(jù)需要做出相應(yīng)的處理,需要的朋友可以參考下
    2023-10-10
  • 代碼分析JAVA中PCM人聲音頻變聲處理

    代碼分析JAVA中PCM人聲音頻變聲處理

    本篇文章通過代碼實(shí)例給大家分析了JAVA中PCM人聲音頻變聲處理的問題,有興趣的朋友跟著學(xué)習(xí)分考下吧。
    2018-01-01
  • Java實(shí)現(xiàn)隨機(jī)抽獎的三種方法

    Java實(shí)現(xiàn)隨機(jī)抽獎的三種方法

    在Java中實(shí)現(xiàn)隨機(jī)抽獎的方法,通常我們會使用java.util.Random類來生成隨機(jī)數(shù),然后基于這些隨機(jī)數(shù)來選擇中獎?wù)?以下將給出幾種常見的隨機(jī)抽獎實(shí)現(xiàn)方式,需要的朋友可以參考下
    2024-09-09
  • Java代碼中如何去掉煩人的“!=null”

    Java代碼中如何去掉煩人的“!=null”

    這篇文章主要介紹了Java代碼中去掉煩人的“!=null”,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Java利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏詳解

    Java利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏詳解

    在項(xiàng)目中有些敏感信息不能直接展示,比如客戶手機(jī)號、身份證、車牌號等信息,展示時(shí)均需要進(jìn)行數(shù)據(jù)脫敏,防止泄露客戶隱私。本文將利用Jackson序列化實(shí)現(xiàn)數(shù)據(jù)脫敏,需要的可以參考一下
    2023-03-03
  • Java 中的 xx ≠ null 是什么新語法

    Java 中的 xx ≠ null 是什么新語法

    Java中null是一個(gè)關(guān)鍵字,用來標(biāo)識一個(gè)不確定的對象。因此可以將null賦給引用類型變量,但不可以將null賦給基本類型變量。本文給大家分享Java 中的 xx ≠ null 是什么新語法,感興趣的朋友一起看看吧
    2021-06-06
  • idea如何修改文件的file is read-only問題

    idea如何修改文件的file is read-only問題

    這篇文章主要介紹了idea如何修改文件的file is read-only問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

浦县| 长乐市| 大邑县| 湟源县| 迁西县| 陕西省| 成都市| 根河市| 甘泉县| 厦门市| 青浦区| 麻江县| 克什克腾旗| 华亭县| 鸡泽县| 左贡县| 区。| 西吉县| 彭泽县| 舒兰市| 泸西县| 奉贤区| 武隆县| 日喀则市| 潮安县| 临漳县| 呼伦贝尔市| 义马市| 五河县| 栾城县| 泸州市| 文化| 鄂州市| 松原市| 巩义市| 鄂温| 蒙自县| 崇义县| 吉木萨尔县| 马龙县| 揭西县|