发布网友 发布时间:2022-05-03 08:53
共4个回答
懂视网 时间:2022-05-03 13:14
)映射, --> <setting name="mapUnderscoreToCamelCase" value="true"/>
或者
//开启驼峰映射 bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想改实体类的话,建议采用resultMap。 2、增加set方法转换值的方式 原实体类
public class user { 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 user;
这句sql在数据库可以查到数据,但是使用mybatis的实体类查询就查不到了。 解决方法 在实体类中增加以下两个set方法并把sql改为
select user_name as username,pass_word as password from user;
使用实体类查询数据库实际上就是一个set的过程只需要把每个属性增加一个set方法就好了(这个还行吧)
public void setUsernaem(String user_name){ this.user_name=user_name; } public void setPassword(String pass_word){ this.pass_word=pass_word; }
然后查询:
//还是可以查询全部数据的
select * from user order by id asc;
ssm+mybatis无法给带有下划线属性赋值问题,无法获取数据库带下划线的字段值
标签:sha mic 取数据 驼峰 code use void his sharp
热心网友 时间:2022-05-03 10:22
struts2框架接收参数是通过*封装的,所以在Action里属性名建议按照JAVA命名规范书写,例如属性名开头字母大写就会拿不到属性,因为struts的*找不到该属性的set方法,无法为其封装对应的值,在Action里自然获取不到值,你的下划线字段取不到值应该也是这个问题。追问并没有首字母大写....类似:user_name user_id 之类的就获取不到 但username userid 这样的可以获取到
热心网友 时间:2022-05-03 11:40
能说清楚一点吗?下划线的字段是指什么?
热心网友 时间:2022-05-03 13:15
看代码是如何的。。。。。。。。