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

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

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

問題的提出

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

解決辦法

一、理解spring-mybatis.xml中關于駝峰命名的配置

mybatisplus是mybatis的升級版,所以配置還是有點兒差別,如果是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ù)據庫下劃線字段名到數(shù)據庫實體類的駝峰命名的映射-->
    <property name="dbColumnUnderline" value="true"/>
  </bean>

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

1、使用resultType直接映射到實體類

直接上代碼:

  <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>

  <!-- 通用查詢結果列-->
  <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>

  <!--驗證用戶登錄-->
  <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、這種方法不用駝峰命名也沒關系,

  <!-- MP 全局配置 -->
  <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
    <!-- 全局的主鍵策略 -->
    <property name="idType" value="0"/>
    <!--映射數(shù)據庫下劃線字段名到數(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>

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

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

  </select>

注意:

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

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

dbColumnUnderline必須為true

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

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

相關文章

  • Java實現(xiàn)簡易GUI貪吃蛇小游戲

    Java實現(xiàn)簡易GUI貪吃蛇小游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡易GUI貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Spring加載properties文件的兩種方式實例詳解

    Spring加載properties文件的兩種方式實例詳解

    這篇文章主要介紹了Spring加載properties文件的兩種方式,需要的朋友可以參考下
    2018-02-02
  • 如何解決springmvc文件下載,內容損壞的問題

    如何解決springmvc文件下載,內容損壞的問題

    這篇文章主要介紹了解決springmvc文件下載,內容損壞的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Idea安裝及涉及springboot詳細配置的圖文教程

    Idea安裝及涉及springboot詳細配置的圖文教程

    這篇文章主要介紹了Idea安裝及涉及springboot詳細配置,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Java中的MapStruct知識點總結

    Java中的MapStruct知識點總結

    這篇文章主要介紹了Java中的MapStruct知識點總結,MapStruct是一個Java注解處理器,用于生成類型安全的映射代碼,它可以自動處理源對象和目標對象之間的映射,減少了手動編寫重復的映射代碼的工作量,需要的朋友可以參考下
    2023-10-10
  • java 判斷字符串是否包含子串的方法

    java 判斷字符串是否包含子串的方法

    這篇文章主要介紹了java 判斷字符串是否包含子串的方法的相關資料,這里提供了三種方法幫助大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-08-08
  • Netty分布式ByteBuf使用的底層實現(xiàn)方式源碼解析

    Netty分布式ByteBuf使用的底層實現(xiàn)方式源碼解析

    這篇文章主要為大家介紹了Netty分布式ByteBuf使用底層實現(xiàn)方式源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • 解析Arthas協(xié)助排查線上skywalking不可用問題

    解析Arthas協(xié)助排查線上skywalking不可用問題

    這篇文章主要為大家介紹了解析Arthas協(xié)助排查線上skywalking不可用的問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • MyBatis Plus 將查詢結果封裝到指定實體的方法步驟

    MyBatis Plus 將查詢結果封裝到指定實體的方法步驟

    這篇文章主要介紹了MyBatis Plus 將查詢結果封裝到指定實體的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • idea編譯報錯-代碼沒問題IDEA編譯不通過的處理方案

    idea編譯報錯-代碼沒問題IDEA編譯不通過的處理方案

    這篇文章主要介紹了idea編譯報錯-代碼沒問題IDEA編譯不通過的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論