字段名:数据库 id name pwd
属性名:实体类 id name password
我们修改完毕后去测试运行一下:
分析
select * from user 等价于 select id,name,pwd from user;
mybatis会根据数据库的字段名去找对应的实体类的属性名,(他会将所有列名转换为小写,然后去找实体类中对应的 set方法 ,set方法后面的字段就对应数据库的字段名;如果不一样就会返回null)
解决方案
1.修改set方法名字 【不推荐使用】
2.给sql语句取别名【字段少的时候推荐使用】
3.结果集映射ResultMap 【最推荐的方式】
<!--设置结果的映射类型-->
<resultMap id="UserMap" type="User">
<!--
一般通过id标签来映射主键
column = 数据库的列名
property = 结果集对应的数据库列名的映射名
-->
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
<select id="selectUser" resultMap="UserMap">
select * from user
</select>