欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis 解決從列名到屬性名的自動(dòng)映射失敗問(wèn)題

 更新時(shí)間:2021年06月30日 14:49:47   作者:franklin_lei  
這篇文章主要介紹了mybatis 解決從列名到屬性名的自動(dòng)映射失敗問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

問(wèn)題背景

從數(shù)據(jù)庫(kù)中取出數(shù)據(jù)映射到實(shí)體類時(shí),實(shí)體類中只有部分屬性映射成功,其余屬性值皆為null。

問(wèn)題描述

如下圖AreaDao.xml文件中描述了queryArea()方法從數(shù)據(jù)庫(kù)獲取Area對(duì)象的各個(gè)屬性值的查詢過(guò)程,最后執(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ù)庫(kù)中對(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)情況下無(wú)法與數(shù)據(jù)庫(kù)表的列名相匹配

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)然這還沒(méi)完,為了讓文件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 無(wú)法找到映射錯(cuò)誤

mybatis 中報(bào)錯(cuò):

Result Maps collection does not contain value for com.common.pojo.User

其中是因?yàn)樵趍apper.xml文件中的resultMap ,沒(méi)有設(shè)置正確,沒(méi)有將sql的列名與pojo類的屬性名保持一致

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論