Mybatis下劃線駝峰處理的幾種方法
首先先說明一下為什么會(huì)出現(xiàn)這種情況
數(shù)據(jù)庫當(dāng)中有時(shí)候會(huì)起一些帶下劃線的列名,例如:last_Name,而javabean當(dāng)中一般遇下劃線都是駝峰顯示的。一般起名稱都是這樣 lastName,這時(shí)候就會(huì)出現(xiàn)一個(gè)問題,就是封裝不到j(luò)avabean里面值。就是因?yàn)閿?shù)據(jù)庫列名和javabean名稱不一致而封裝不上。

java對象

查出來會(huì)發(fā)現(xiàn)賦值不上去
Employee [id=1, lastName=null, email=1, gender=1]
這時(shí)候有人該說了,我javabean當(dāng)中也用last_name不上也可以呀。
答案:可以,但是Java中一般是final變量才用大寫字母+下劃線命名。
1、可以通過寫別名
在針對于對象屬性多的情況下就不實(shí)用了。寫起來可能因?yàn)檫@一個(gè)名稱,全得把列名寫出來。
<select id="getEmpById" resultType="com.gzl.mybatis.bean.Employee">
select id as id,last_Name as lastName,email as email,gender as gender from student where id = #{id}
</select>
2、開啟駝峰命名
在mybatis-config-xml添加以下配置,切記xml是有順序要求的,如果xml當(dāng)中用到了properties標(biāo)簽,就放在這個(gè)標(biāo)簽下面,如果沒有就放在最上面。
<settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
3、自定義javabean的封裝規(guī)則
<!--自定義某個(gè)javaBean的封裝規(guī)則
type:自定義規(guī)則的Java類型
id:唯一id方便引用
-->
<resultMap type="com.gzl.mybatis.bean.Employee" id="MySimpleEmp">
<!--指定主鍵列的封裝規(guī)則
id定義主鍵會(huì)底層有優(yōu)化;
column:指定哪一列
property:指定對應(yīng)的javaBean屬性
-->
<id column="id" property="id"/>
<!-- 定義普通列封裝規(guī)則 -->
<result column="last_name" property="lastName"/>
<!-- 其他不指定的列會(huì)自動(dòng)封裝:我們只要寫resultMap就把全部的映射規(guī)則都寫上。 -->
<result column="email" property="email"/>
<result column="gender" property="gender"/>
</resultMap>
<select id="getEmpById" resultMap="MySimpleEmp">
select * from student where id = #{id}
</select>
以上就是Mybatis下劃線駝峰處理的幾種方法的詳細(xì)內(nèi)容,更多關(guān)于Mybatis下劃線駝峰處理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Mybatis實(shí)體別名支持通配符掃描問題小結(jié)
MyBatis可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄,這篇文章主要介紹了Mybatis實(shí)體別名支持通配符掃描的問題,需要的朋友可以參考下2022-01-01
Spring Boot Starter 的應(yīng)用場景與自動(dòng)配置方式
本文介紹了Spring Boot Starter的使用場景,如何自定義Starter以及Spring Boot自動(dòng)配置原理,Spring Boot Starter解決了依賴導(dǎo)入和配置繁瑣的問題,通過自動(dòng)配置類和xxxProperties類實(shí)現(xiàn)組件的自動(dòng)注入和配置,感興趣的朋友一起看看吧2025-03-03
SpringBoot整合Druid數(shù)據(jù)源過程詳解
這篇文章主要介紹了SpringBoot整合Druid數(shù)據(jù)源過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Synchronized?和?ReentrantLock?的實(shí)現(xiàn)原理及區(qū)別
這篇文章主要介紹了Synchronized?和?ReentrantLock?的實(shí)現(xiàn)原理及區(qū)別,文章為榮啊主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
淺談Java異常的Exception e中的egetMessage()和toString()方法的區(qū)別
下面小編就為大家?guī)硪黄獪\談Java異常的Exception e中的egetMessage()和toString()方法的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖
這篇文章主要介紹了淺談Java分布式架構(gòu)下如何實(shí)現(xiàn)分布式鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

