Mybatis下劃線駝峰處理的幾種方法
首先先說明一下為什么會(huì)出現(xiàn)這種情況
數(shù)據(jù)庫(kù)當(dāng)中有時(shí)候會(huì)起一些帶下劃線的列名,例如:last_Name,而javabean當(dāng)中一般遇下劃線都是駝峰顯示的。一般起名稱都是這樣 lastName,這時(shí)候就會(huì)出現(xiàn)一個(gè)問題,就是封裝不到j(luò)avabean里面值。就是因?yàn)閿?shù)據(jù)庫(kù)列名和javabean名稱不一致而封裝不上。
java對(duì)象
查出來會(huì)發(fā)現(xiàn)賦值不上去
Employee [id=1, lastName=null, email=1, gender=1]
這時(shí)候有人該說了,我javabean當(dāng)中也用last_name不上也可以呀。
答案:可以,但是Java中一般是final變量才用大寫字母+下劃線命名。
1、可以通過寫別名
在針對(duì)于對(duì)象屬性多的情況下就不實(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:指定對(duì)應(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下劃線駝峰處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Mybatis實(shí)體別名支持通配符掃描問題小結(jié)
MyBatis可以使用簡(jiǎn)單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄,這篇文章主要介紹了Mybatis實(shí)體別名支持通配符掃描的問題,需要的朋友可以參考下2022-01-01Spring Boot Starter 的應(yīng)用場(chǎng)景與自動(dòng)配置方式
本文介紹了Spring Boot Starter的使用場(chǎng)景,如何自定義Starter以及Spring Boot自動(dòng)配置原理,Spring Boot Starter解決了依賴導(dǎo)入和配置繁瑣的問題,通過自動(dòng)配置類和xxxProperties類實(shí)現(xiàn)組件的自動(dòng)注入和配置,感興趣的朋友一起看看吧2025-03-03SpringBoot整合Druid數(shù)據(jù)源過程詳解
這篇文章主要介紹了SpringBoot整合Druid數(shù)據(jù)源過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Synchronized?和?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ì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07