数据库中的字段
新建一个项目,拷贝之前的,测试实体类字段名不一样的情况
//实体类
public class User {
private int id;
private String name;
private String password;
原因:
select * from mybatis.user where id= #{id} ==> select id,name,pwd from mybatis.user where id= #{id}
第一种解决方法:
- 起别名
select id,name,pwd as password from mybatis.user where id= #{id}
resultMap
第二种解决方法:
结果集映射
<!--namespace=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.li.dao.UserMapper">
<!-- 结果集映射-->
<resultMap id="UserMap" type="User">
<!-- column数据库中的字段,property实体类中的属性 -->
<result column="id" property="id"></result>
<result column="name" property="name"></result>
<result column="pwd" property="password"></result>
</resultMap>
<select id="getUserById" resultMap="UserMap">
select * from mybatis.user where id= #{id}
</select>
</mapper>
- resultMap 元素是 MyBatis 中最重要最强大的元素。
- ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。