解决mybatis无法给带有下划线属性赋值问题
mybatis无法给带有下划线属性赋值问
1、配置问题
<!-- 是否开启自动驼峰命名规则(camel case)映射, --> <setting name="mapUnderscoreToCamelCase" value="true"/>
或者
//开启驼峰映射 bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想改实体类的话,建议采用resultMap。
2、增加set方法转换值的方式
原实体类
public class demo { private String user_name; private Striing pass_word; public String getPass_word(){ return pass_word; } public void setPass_word(String pass_word){ this.pass_word=pass_word; } }
原sql
select user_name,pass_word from demo;
这句sql在数据库可以查到数据,但是使用mybatis的实体类查询就查不到了。
解决方法
在实体类中增加以下两个set方法并把sql改为
select user_name as username,pass_word as password from demo;
使用实体类查询数据库实际上就是一个set的过程只需要把每个属性增加一个set方法就好了
public void setUsernaem(String user_name){ this.user_name=user_name; } public void setPassword(String pass_word){ this.pass_word=pass_word; }
仅适用于不方便改实体类的情况
实体类中有下滑线字段无法赋值问题
实体类中有下滑线字段,mybatis无法赋值
- 直接将实体类中的下划线去掉
- 返回值使用resultMap进行字段映射赋值
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
IDEA运行导入的javaweb项目tomcat正常,但是运行失败404问题
这篇文章主要介绍了IDEA运行导入的javaweb项目tomcat正常但是运行失败404问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07SpringBoot整合JavaMail实现发邮件的项目实践
本文主要介绍了SpringBoot整合JavaMail实现发邮件的项目实践,详细阐述了使用SpringBoot和JavaMail发送邮件的步骤,具有一定的参考价值,感兴趣的可以了解一下2023-10-10原因分析IDEA导入Spring-kafka项目Gradle编译失败
这篇文章主要为大家介绍分析了IDEA导入Spring-kafka项目Gradle中编译失败原因及解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步2022-02-02
最新评论