解决mybatis无法给带有下划线属性赋值问题
目录
- mybatis无法给带有下划线属性赋值问
- 1、配置问题
- 2、增加set方法转换值的方式
- 解决方法
- 实体类中有下滑线字段无法赋值问题
mybatis无法给带有下划线属性赋值问
1、配置问题
或者
//开启驼峰映射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进行字段映射赋值
推荐阅读
- 安卓给gallery内"控件"挂载事件,滑动后抬起手指时也触发事件(滑动时不应触发)的解决!
- Outlook无法启动一直显示“正在启动”的解决方法
- Win7/8无法安装NVIDIA显卡驱动的多种处理技巧
- Win8.1专业版下IE浏览器页面无法缩放怎样办?
- Win8.1专业版无法安装无线网卡的怎样办?
- Android中使用Handler造成内存泄露的分析和解决
- h5开发安卓软键盘遮挡解决方案
- 为什么云计算实例会启动虚拟机而不是容器(解决办法)
- 无法识别光驱:电脑无法识别光驱的处理办法
- 解决日常问题|使用mybatis-plus产生java.sql.SQLSyntaxErrorException: Table ‘数据库.xxx表‘ doesn‘t exist(坑以踩)