mybatis 解決從列名到屬性名的自動(dòng)映射失敗問題
問題背景
從數(shù)據(jù)庫中取出數(shù)據(jù)映射到實(shí)體類時(shí),實(shí)體類中只有部分屬性映射成功,其余屬性值皆為null。
問題描述
如下圖AreaDao.xml文件中描述了queryArea()方法從數(shù)據(jù)庫獲取Area對(duì)象的各個(gè)屬性值的查詢過程,最后執(zhí)行查詢結(jié)果顯示只有屬性priority被成功地賦值
AreaDao.xml
<select id="queryArea" resultType="com.imooc.wechatpro.model.Area">
SELECT area_id, area_name, priority, create_time, last_edit_time
FROM tb_area
ORDER BY priority
DESC
</select>
AreaDaoTest.java Area area = areaDao.queryAreaById(3);
area = {Area@7489}
areaId = null
areaName = null
priority = {Integer@7513} 312
createTime = null
lastEditTime = null
數(shù)據(jù)庫中對(duì)應(yīng)的表tb_area:
mysql> select * from tb_area; +---------+-----------+----------+-------------+----------------+ | area_id | area_name | priority | create_time | last_edit_time | +---------+-----------+----------+-------------+----------------+ | 1 | 南苑 | 302 | NULL | NULL | | 2 | 北苑 | 307 | NULL | NULL | | 3 | 東苑 | 312 | NULL | NULL | +---------+-----------+----------+-------------+----------------+
原因
實(shí)體類Area中的屬性使用的是駝峰命名規(guī)則,默認(rèn)情況下無法與數(shù)據(jù)庫表的列名相匹配
Area.java
public class Area {
private Integer areaId;
private String areaName;
private Integer priority;
private Date createTime;
private Date lastEditTime;
······
}
解決辦法
在mybatis的配置文件mybatis-config.xml中將mapUnderscoreToCamelCase設(shè)為true,關(guān)于配置文件mybatis-config.xml的各種屬性配置可以參考官方文檔
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>
當(dāng)然這還沒完,為了讓文件mybatis-config.xml生效,需要將該文件的路徑添加到全局配置文件application.properties(or application.yml)的配置中,如
application.properties mybatis.config-location=classpath:mybatis-config.xml
在這里,我的mybatis-config.xml文件在resources目錄下,因此使用路徑classpath:mybatis-config.xml
mybatis 無法找到映射錯(cuò)誤
mybatis 中報(bào)錯(cuò):
Result Maps collection does not contain value for com.common.pojo.User
其中是因?yàn)樵趍apper.xml文件中的resultMap ,沒有設(shè)置正確,沒有將sql的列名與pojo類的屬性名保持一致
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springMVC返回復(fù)雜的json格式數(shù)據(jù)方法
下面小編就為大家分享一篇springMVC返回復(fù)雜的json格式數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03
Java HashSet集合存儲(chǔ)遍歷學(xué)生對(duì)象代碼實(shí)例
這篇文章主要介紹了Java HashSet集合存儲(chǔ)遍歷學(xué)生對(duì)象代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Java 關(guān)于eclipse導(dǎo)入項(xiàng)目發(fā)生的問題及解決方法(推薦)
下面小編就為大家分享一篇Java 關(guān)于eclipse導(dǎo)入項(xiàng)目發(fā)生的問題及解決方法(推薦),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
SpringBoot+Jersey跨域文件上傳的實(shí)現(xiàn)示例
在SpringBoot開發(fā)后端服務(wù)時(shí),我們一般是提供接口給前端使用,本文主要介紹了SpringBoot+Jersey跨域文件上傳的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
Java高效提取PDF文件指定坐標(biāo)的文本內(nèi)容實(shí)戰(zhàn)代碼
在日常工作中,有時(shí)可能會(huì)需要從龐大的PDF文檔中提取其中所包含的文本內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于如何利用Java高效提取PDF文件指定坐標(biāo)的文本內(nèi)容,需要的朋友可以參考下2024-01-01
springMVC的RequestMapping請(qǐng)求不到路徑的解決
這篇文章主要介紹了springMVC的RequestMapping請(qǐng)求不到路徑的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

