|
1
2
|
<!-- 是否开启自动驼峰命名规则(camel case)映射, -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
|
或者
|
1
2
|
//开启驼峰映射
bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
|
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想改实体类的话,建议采用resultMap。
原实体类
|
1
2
3
4
5
6
7
8
9
10
|
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
|
1
|
select user_name,pass_word from demo;
|
这句sql在数据库可以查到数据,但是使用mybatis的实体类查询就查不到了。
在实体类中增加以下两个set方法并把sql改为
|
1
|
select user_name as username,pass_word as password from demo;
|
使用实体类查询数据库实际上就是一个set的过程只需要把每个属性增加一个set方法就好了
|
1
2
3
4
5
6
|
public void setUsernaem(String user_name){
this.user_name=user_name;
}
public void setPassword(String pass_word){
this.pass_word=pass_word;
}
|
仅适用于不方便改实体类的情况
实体类中有下滑线字段,mybatis无法赋值
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。