由于Mybatis没有像hibernate的映射文件,Mybatis反射是通过列名调用set+列名来进行设值,但是如果数据库列名和实体类属性名不一致的话,就不能通过set方法来进行设值,
<select id="selectAll" resultType="mym.mybatis.domain.User">
select id,name as username,password from user
</select>
可以通过sql语句给列名起别名的方式,就可以通过set方法进行设值
*在通过打印set方法是,发现了一些有趣的东西
档配置文件是这样时
<select id="selectAll" resultType="mym.mybatis.domain.User">
select id,name as username,password from user
</select>
实体类是这样时 private String Username;
public String getUsername() {
System.out.println("User.getUsername()");
return Username;
}
public void setUsername(String username) {
System.out.println("User.setUsername()");
User
结果为User.setId()001
User.setPassword()123
User.setId()002
User.setPassword()123
id=001Username=zspassword=123
id=002Username=lspassword=123
*可以发现没有调用set方法 但是Username是有值的 这时反射的应该是字段
属性名第一个字母一定要小写 这是规矩