1、解决字段名和属性名不一样的问题
数据库中的字段:
新建一个项目,拷贝之前的,测试实体类字段不一致的情况。
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};
2、resultMap
<!-- 结果集映射 --> <resultMap id="userMap" type="com.allen.pojo.User"> <!-- column数据库中的字段,property实体中的属性 --> <result column="id" property="id" /> <result column="name" property="name" /> <result column="pwd" property="password" /> </resultMap> <select id = "getUserById" resultMap="userMap" parameterType = "int"> select * from mybatis.user where id = #{id}; </select>
resultMap元素是MyBatis中最重要最强大的元素
resultMap的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。
resultMap最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。
如果世界总是这么简单就好了。