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

mybatis 解決從列名到屬性名的自動映射失敗問題

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

問題背景

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

問題描述

如下圖AreaDao.xml文件中描述了queryArea()方法從數(shù)據(jù)庫獲取Area對象的各個屬性值的查詢過程,最后執(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ù)庫中對應(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           |
+---------+-----------+----------+-------------+----------------+

原因

實體類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 無法找到映射錯誤

mybatis 中報錯:

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

其中是因為在mapper.xml文件中的resultMap ,沒有設(shè)置正確,沒有將sql的列名與pojo類的屬性名保持一致

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

相關(guān)文章

最新評論