广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis 实体类字段大小写问题 字段获取不到值的解决
  • 752
分享到

mybatis 实体类字段大小写问题 字段获取不到值的解决

2024-04-02 19:04:59 752人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis实体类字段大小写问题 字段获取不到值解决办法推断踩坑mybatis 转换大小写问题解决方法mybatis实体类字段大小写问题 字段获取不到值 由于前期设计问题,项目

mybatis实体类字段大小写问题 字段获取不到值

由于前期设计问题,项目中需要用到的一个字段 rootpath,所以我再实体层加了这么一个字段。

然后,我在前台向后台传数据的时候,这个rootpath一直都获取不到值。经过排查对比,发现我写的set和get方法名称后面的RootPath 中的P字母大写导致的。

解决办法

将set和get方法后面的P改为小写p就可以了

推断

mybatis认为rootpath是一个单词,但是我错误的认为了是两个单词,然后再写set和get的时候给P大写了,所以导致了字段获取不到值!

踩坑mybatis 转换大小写问题

由于在windows环境下Mysql数据库不严格区分大小写,所以我们在对数据库的表和字段进行命名时两个单词之间都是使用下划线“_”的,比如“user_name”。但是,我们在项目开发时,为了遵守代码规范,实体类中的属性采用的都是驼峰式命名。这样,MyBatis可能就会报错没有该属性的get和set方法。

解决方法

1.使用resultMap

通过resultMap中的column值(数据库字段名)和property值(实体类属性名)进行一一映射。


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "Http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.domain.User">
    <id column="id" jdbcType="INTEGER" property="id" />
    <result column="user_name" jdbcType="VARCHAR" property="userName" />
    <result column="passWord" jdbcType="VARCHAR" property="password" />
    
  </resultMap>
  <select id="xxx" parameterType="xxx" resultMap="BaseResultMap" >
  ......
  </select>

2.对MyBatis进行配置:

(1)在mybatis-config.xml配置文件中添加以下代码:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<configuration>
 <!-- 配置mybatis自动转换为驼峰命名 -->
 <settings>
  <setting name="mapUnderscoreToCamelCase" value="true" />
 </settings>
</configuration>

(2) 在application.yml文件中进行配置:


#mybatis配置
mybatis:
 configuration:
   map-underscore-to-camel-case: true

其中的map-underscore-to-camel-case也可以写成mapUnderscoreToCamelCase(未尝试),然后MyBatis的xml文件中直接使用对应的实体类来接收数据。


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UserMapper">
  <select id="xxx" parameterType="xxx" resultType="User" >
  ......
  </select>

第(1)种方式和第(2)种方式同时配置时,第(2)种方式的优先级更高。

3.自定义配置类的方式配置:给容器中添加一个ConfigurationCustomizer。


@Configuration
public class MyBatisConfig {
    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return new ConfigurationCustomizer() {
            @Override
            public void customize(org.apache.ibatis.session.Configuration configuration) {
                configuration.setMapUnderscoreToCamelCase(true);
            }
        };
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis 实体类字段大小写问题 字段获取不到值的解决

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

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

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

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

下载Word文档
猜你喜欢
  • mybatis 实体类字段大小写问题 字段获取不到值的解决
    目录mybatis实体类字段大小写问题 字段获取不到值解决办法推断踩坑mybatis 转换大小写问题解决方法mybatis实体类字段大小写问题 字段获取不到值 由于前期设计问题,项目...
    99+
    2022-11-12
  • mybatis实体类字段大小写及字段获取不到值问题
    目录mybatis实体类字段大小写及字段获取不到值问题解决办法推断mybatis下部分字段值无法获取(null)解决之前解决方法mybatis实体类字段大小写及字段获取不到值 问题 ...
    99+
    2022-11-12
  • mybatis实体类字段获取不到值怎么解决
    这篇文章主要介绍“mybatis实体类字段获取不到值怎么解决”,在日常操作中,相信很多人在mybatis实体类字段获取不到值怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mybatis实体类字段获取不...
    99+
    2023-06-21
  • Mybatis Generator 获取不到字段注释的解决
    目录Mybatis Generator 获取不到字段注释解决方法Oracle 数据库MySql 数据库详解mybatis-generator生成数据表中注释1.克隆项目2.修改pom...
    99+
    2022-11-12
  • 解决使用mybatis取值,字段赋值错误的问题
    目录使用mybatis取值,字段赋值错误mybatis映射赋值失败错误输出错误造成原因解决方法使用mybatis取值,字段赋值错误  我在读取数据库的表信息时,出现了不同字...
    99+
    2022-11-13
  • 解决Mybatis plus实体类属性与表字段不一致的问题
    下面看下Mybatis plus实体类属性与表字段不一致的问题,内容如下所示: 主要注释到实体类上的注解: @TableName(value = …)当数据库名与实体类...
    99+
    2022-11-13
  • Mybatis-Plus系列---【解决null值字段不更新的问题】
    解决null值字段不更新的问题 1.问题 我的MP版本是3.3.2,用Mybatis-Plus的updateById()来更新数据时,无法将字段设置为null值(更新后数据还是原来的值)。 2.分析 默认情况下,Mybatis-Pl...
    99+
    2023-09-18
    mybatis java mysql 开发语言 数据库
  • 解决json串和实体类字段不一致的问题
    这里我们对json串和实体类字段不一致的情况进行一个测试: 首先,我们建立一个实体类:这里简单定义了name,sex,age三个属性,以及get set tostring方法。 ...
    99+
    2022-11-11
  • 如何解决javaBean json传参首字母大写获取不到的问题
    本篇内容介绍了“如何解决javaBean json传参首字母大写获取不到的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!javaBean...
    99+
    2023-06-20
  • 如何解决mybatis-plus实体类中出现非数据库映射字段的问题
    本篇内容主要讲解“如何解决mybatis-plus实体类中出现非数据库映射字段”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决mybatis-plus实体类中出现非数据库映射字段”吧!在使...
    99+
    2023-06-07
  • java只返回实体类中的部分字段问题如何解决
    这篇文章主要介绍了只返回实体类中的部分字段问题如何解决,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。如何只返回实体类中的部分字段在实体类上添加注解@JsonInclude(JsonInclude.Include.NON_...
    99+
    2023-07-06
  • 解决javaBean规范导致json传参首字母大写将永远获取不到问题
    javaBean规范导致json传参首字母大写获取不到 规范中另一个特别的地方就是: 1.第二个字母为大写的属性名要区别对待 如果属性名的第二个字母是大写的,那么该属性名直接用作 g...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作