`
xieyunbiao
  • 浏览: 38508 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

mybatis 下划线变量的问题

阅读更多

mybatis 从数据库中获取信息映射到实体中时,往往会遇到变量名带有下划线的情况,处理不好容易产生“o.a.i.s.AutoMappingUnknownColumnBehavior : Unknown column is detected on '*****' auto-mapping. Mapping parameters are [columnName=***_***,propertyName=***_***,propertyType=null]”,带有下划线的变量无法得到映射。

解决办法如下:

1.在mybatis设置文件中设置<setting name="mapUnderscoreToCamelCase" value="true"/>,启动驼峰规则,这样在map文件中带下划线的column会自动按照驼峰命名规则映射到实体属性变量中。

例如:

map文件中 select user_id, user_name from user_info where user_id=#{id}

resultType对应的bean中对应的变量名要使用userId 和userName 或者按照驼峰规则编写set方法

 

2.禁用驼峰规则<setting name="mapUnderscoreToCamelCase" value="false"/>,这样map文件中的带有下划线的columnName会一对一的对应到实体类中的同名变量中。

例如:

map文件中 select user_id, user_name from user_info where user_id=#{id}

resultType对应的bean中对应的变量名user_id和user_name

 

3.如果不想禁用驼峰规则,有不想修改实体类,那就在map文件中使用resultMap,resultMap中的columnName不受驼峰规则的影响,间接起到了禁用驼峰规则的效果。

例如:

<resultMap id="userResultMap" type="cn.**.User">

<result property="user_id" column="user_id"/>

<result property="user_name" column="user_name"/>  

</resultMap>

 

 

分享到:
评论

相关推荐

    SpringBoot+Mybatis,返回Map的时候,将Map内的Key转换为驼峰的命名

    在Java编程中,驼峰命名法(Camel Case)是常用的变量和方法命名规则,它使得代码更易读、更符合编程规范。然而,数据库中的字段名通常采用下划线命名法(Underscore Case),如`user_name`,这与Java中的驼峰命名法...

    mybatis-plus 表名添加前缀的实现方法

    当数据库字段使用驼峰命名法(如 `userId`)而实体类属性也是驼峰命名时,MyBatis-Plus 默认会尝试将驼峰命名转换为下划线命名(`user_id`),这可能导致映射问题。解决这个问题的方法是在配置文件中关闭驼峰到...

    MyBatis个人笔记

    此配置使得MyBatis能够自动将下划线分隔的数据库字段名转换为驼峰式命名的Java属性名。 **1.4 MyBatis动态SQL** 在MyBatis中,动态SQL允许根据运行时条件构建SQL语句,这对于复杂查询非常有用。动态SQL主要涉及...

    MyBatis全局映射文件实现原理解析

    MyBatis全局映射文件是MyBatis框架中不可或缺的一部分,它主要负责定义SQL语句、存储过程和其他数据库操作。全局映射文件通常以XML格式存在,与...理解这一实现原理对于优化MyBatis的使用和解决相关问题至关重要。

    action:action 是一个基于Spring Boot & MyBatis的项目,用于快速构建中小型API、RESTful API,以及企业级项目,该项目稳定、简单、快速,使我们摆脱那些重复劳动,专注于业务代码的编写,减少加班

    action 简介 action 是一个基于Spring Boot & MyBatis的项目,用于快速构建中小型API、RESTful API,以及企业级项目,...Model内成员变量建议与表字段数量对应,如需扩展成员变量(比如连表查询)建议创建DTO,否则需在

    java各知识点详细总结

    3. **标识符**:程序员自定义的名称,如类名、变量名、方法名,由字母、数字、美元符号 `$` 和下划线 `_` 组成,但不能以数字开头,也不能与关键字重名。 4. **常量**:在程序中不可改变的值,可以使用`final`关键字...

    Java基础学习02.pdf

    1. 必须由字母、数字、下划线`_`或美元符号`$`组成。 2. 不能以数字开头。 3. 不能使用Java的保留关键字作为标识符,如`public`、`class`等。 4. 严格区分大小写,例如,`myVariable`和`myvariable`是两个不同的...

    Alibaba Java Coding Guidelines-1.0.5.zip

    - 使用MyBatis时,避免在Mapper接口方法中直接使用`SqlSession`,推荐使用`@Transactional`注解进行事务管理。 8. **日志规约**: - 日志级别应明确,避免混合使用`debug`、`info`、`warn`和`error`。 - 日志...

    阿里巴巴开发规范

    包名全部小写,常量全大写,单词间下划线分隔。 - 注释规范:类、方法、变量都应有注释,注释应简洁明了,解释功能和用途。 - 异常处理:合理抛出和捕获异常,避免空指针、数组越界等基础错误。 - 日志记录:使用...

    Java_CodingRule

    - 常量名:全大写字母,单词间用下划线分隔,如`CONSTANT_NAME`。 2. **注释规则** - 类、接口和方法上方应有Javadoc注释,描述其功能、用途和参数。 - 行内注释应当简洁明了,避免过多的注释干扰代码阅读。 - ...

    java各知识点详细总结(超级经典).doc

    它们可以包含字母、数字、美元符号($)和下划线(_),但不能以数字开头,也不能使用关键字。 **常量**:在程序中不可更改的值,可以是数值、字符串或其他类型。Java中有四种基本类型的常量:整型(byte, short, int, ...

    阿里云java短信验证码源码-weixiao_be:weixiaoHybridApp后端项目

    阿里云java短信验证码源码 简介 微校后端服务项目,项目基于 Spring Boot API Project Seed种子项目进行开发,感谢开源为我们带来如此方便的 Seed. Spring ...MyBatis的种子项目,用于快速构建...Model内成员变量建议与表

    验证数字的正则表达式集

    常用于验证用户名或变量名,包含字母、数字和下划线。 18. **验证用户密码**:`^[a-zA-Z]\w{5,17}$` 验证密码,必须以字母开头,长度在6到18之间,包含字母、数字和下划线。 19. **验证是否含有特殊字符**:`[^%...

    阿里巴巴Java开发手册2018-详尽版

    2. 变量与常量:推荐使用匈牙利命名法,并明确区分局部变量与成员变量。常量应全大写,用下划线分隔单词。 3. 注释:提倡使用Javadoc格式注释,清晰阐述类、方法的功能和使用注意事项。 二、异常处理 1. 异常捕获:...

    项目开发规范..doc项目开发规范..doc

    - **类变量**: 首字母小写,多单词时后续单词首字母大写,无下划线,私有访问控制,提供setter和getter,如`private int userName` - **常量**: 全部大写,多单词间用下划线分隔,公共、静态、final,如`public ...

    JAVA培训一PPT学习教案.pptx

    标识符用于命名变量、方法和类,遵循特定的命名规则,如以字母、下划线或美元符号开头,且区分大小写。 **1.2.2 关键字** JAVA的关键字有特定含义,例如`abstract`, `do`, `implements`, `private`, `this`等,避免...

    Java开发规范

    - **MyBatis配置文件**:核心配置文件名为`mybatis-config.xml`,映射文件通常命名为`XxxMapper.xml`。 ##### 其他命名 - **自定义异常**:以`Exception`结尾,如`NotSingleResultException`。 - **数组命名**:...

    《Java开发手册》-嵩山版.zip

    - 变量命名:手册可能涵盖了Java中的变量命名规则,包括驼峰命名法和下划线命名法,以及如何为类、方法、常量等选择合适的命名。 - 类与对象:可能讲解了面向对象的基本原则,如封装、继承和多态,以及如何设计和...

    阿里巴巴Java开发手册(详尽版)1.4.0.pdf

    1. **命名规范**:阿里巴巴手册强调了类名、方法名、变量名的驼峰命名法,以及常量全大写并用下划线分隔的规则。此外,还规定了包名、类名、接口名、枚举名、方法名、变量名的具体命名策略,确保代码的一致性和...

Global site tag (gtag.js) - Google Analytics