mybatis 解决从列名到属性名的自动映射失败问题


Posted in Java/Android onJune 30, 2021

问题背景

从数据库中取出数据映射到实体类时,实体类中只有部分属性映射成功,其余属性值皆为null。

问题描述

如下图AreaDao.xml文件中描述了queryArea()方法从数据库获取Area对象的各个属性值的查询过程,最后执行查询结果显示只有属性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

数据库中对应的表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中的属性使用的是驼峰命名规则,默认情况下无法与数据库表的列名相匹配

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设为true,关于配置文件mybatis-config.xml的各种属性配置可以参考官方文档

<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>
</configuration>

当然这还没完,为了让文件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 ,没有设置正确,没有将sql的列名与pojo类的属性名保持一致

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
JVM入门之类加载与字节码技术(类加载与类的加载器)
Jun 15 Java/Android
Java并发编程之Executor接口的使用
Jun 21 Java/Android
Java并发编程必备之Future机制
Jun 30 Java/Android
一篇文章带你学习Mybatis-Plus(新手入门)
Aug 02 Java/Android
使用jpa之动态插入与修改(重写save)
Nov 23 Java/Android
maven依赖的version声明控制方式
Jan 18 Java/Android
Android开发实现极为简单的QQ登录页面
Apr 24 Java/Android
Android Studio 计算器开发
May 20 Java/Android
Android学习之BottomSheetDialog组件的使用
Jun 21 Java/Android
SpringBoot详解执行过程
Jul 15 Java/Android
Spring Boot 的创建和运行示例代码详解
Jul 23 Java/Android
Java基础之this关键字的使用
Jun 30 #Java/Android
Java图书管理系统,课程设计必用(源码+文档)
详解Java ES多节点任务的高效分发与收集实现
Jun 30 #Java/Android
mybatis中sql语句CDATA标签的用法说明
Jun 30 #Java/Android
总结Java对象被序列化的两种方法
Jun 30 #Java/Android
实体类或对象序列化时,忽略为空属性的操作
Jun 30 #Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 #Java/Android
You might like
discuz安全提问算法
2007/06/06 PHP
解析php中的escape函数
2013/06/29 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
2013/01/18 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
js读取本地文件的实例
2017/12/22 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
Python lxml模块安装教程
2015/06/02 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
服务型党组织建设典型材料
2014/05/07 职场文书
素质教育标语
2014/06/27 职场文书
公司委托书怎么写
2014/08/02 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
事业单位个人总结
2015/02/12 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
护士业务学习心得体会
2016/01/25 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书