詳解MyBatis中column屬性的總結(jié)
在MyBatis的映射中有column這么一個屬性,我一直以為它映射的是數(shù)據(jù)庫表中的列名,但經(jīng)過學(xué)習(xí)發(fā)現(xiàn)他似乎映射的是SQL語句中的列名,或者說是查詢結(jié)果所得到的表的列名。
下面我們進行一個實驗。
首先我們有一張user表:
我還有一個實體類User,有著id、username、password三個屬性。
我們的UserMapper接口中有著獲取這張表單所有數(shù)據(jù)的方法。
我們現(xiàn)在在UserMapper.mxl中這樣寫:
<select id="getUsers" resultType="User"> select * from mybaties.user </select>
或者這樣寫:
<select id="getUsers" resultType="User"> select id, username, password from mybaties.user </select>
這兩句完全相同,我們?nèi)y試一下看看結(jié)果:
成功獲取了所有信息。
現(xiàn)在給password起個別名pwd,在UserMapper.mxl中這樣寫:
<select id="getUsers" resultType="User"> select id, username, password as pwd from mybaties.user </select>
此時我們再去運行:
我們會發(fā)現(xiàn)password竟然變成了null。
此時我們?nèi)ヅ渲靡粋€結(jié)果映射,讓pwd映射到我們的屬性password:
<resultMap id="um" type="User"> <result property="password" column="pwd"/> </resultMap> <select id="getUsers" resultMap="um"> select id, username, password as pwd from mybaties.user </select>
測試結(jié)果:
沒有問題。
得出結(jié)論:映射到屬性的字段名是查詢結(jié)果的列名,而不是數(shù)據(jù)庫中已存在的表的列名。
到此這篇關(guān)于MyBatis中column屬性的總結(jié)的文章就介紹到這了,更多相關(guān)MyBatis column屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot產(chǎn)生環(huán)形注入的解決方案
這篇文章主要介紹了Spring Boot產(chǎn)生環(huán)形注入的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09使用WebSocket實現(xiàn)即時通訊(一個群聊的聊天室)
這篇文章主要為大家詳細介紹了使用WebSocket實現(xiàn)即使通訊,實現(xiàn)一個群聊的聊天室,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03Java Mybatis框架多表操作與注解開發(fā)詳解分析
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫中的記錄2021-10-10Spring?Boot實現(xiàn)第一次啟動時自動初始化數(shù)據(jù)庫流程詳解
在現(xiàn)在的后端開發(fā)中,只要是使用關(guān)系型數(shù)據(jù)庫,相信SSM架構(gòu)(Spring?Boot?+?MyBatis)已經(jīng)成為首選,本文就以Spring?Boot?+?MyBatis為例,使用MySQL作為數(shù)據(jù)庫,完成數(shù)據(jù)庫初始化功能,文中有詳細的代碼示例,需要的朋友可以參考下2023-05-05Spring Cloud 2023 新特性支持同步網(wǎng)關(guān)
這篇文章主要為大家介紹了Spring Cloud 2023 新特性支持同步網(wǎng)關(guān)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10