广告
返回顶部
首页 > 资讯 > 精选 >mybatis如何解决从列名到属性名的自动映射失败的问题
  • 451
分享到

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

2023-06-20 12:06:41 451人浏览 薄情痞子
摘要

本篇内容介绍了“mybatis如何解决从列名到属性名的自动映射失败的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题背景从数据库中取出

本篇内容介绍了“mybatis如何解决从列名到属性名的自动映射失败的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

问题背景

数据库中取出数据映射到实体类时,实体类中只有部分属性映射成功,其余属性值皆为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.javaArea 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.javapublic 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.propertiesmybatis.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类的属性名保持一致

“mybatis如何解决从列名到属性名的自动映射失败的问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: mybatis如何解决从列名到属性名的自动映射失败的问题

本文链接: https://www.lsjlt.com/news/296705.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis 解决从列名到属性名的自动映射失败问题
    问题背景 从数据库中取出数据映射到实体类时,实体类中只有部分属性映射成功,其余属性值皆为null。 问题描述 如下图AreaDao.xml文件中描述了queryArea()方法从数据...
    99+
    2022-11-12
  • mybatis如何解决从列名到属性名的自动映射失败的问题
    本篇内容介绍了“mybatis如何解决从列名到属性名的自动映射失败的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题背景从数据库中取出...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作