问题描述:
如果你的实体类的字段写的是
public class User { private int id; private String name; private String password; }
但是你的数据库的表结构为
id name pwd
这样在进行mapper映射的时候
就会password读不出来pwd的值。
解决办法:
(1)通过SQL语句给password起别名,显式将pwd转为password
<select id="getUserById" resultType="com.kuang.pojo.User"> select id,name,pwd as password from mybatis.user where id = #{id} </select>
(2)进行结果集的映射
自定义一个新的类型UserMap
将User的各个字段赋给UserMap,但将pwd改为password
<!--结果集映射--> <resultMap id="UserMap" type="User"> <!--column数据库中的字段,property实体类中的属性--> <result column="id" property="id"/> <result column="name" property="name"/> <result column="pwd" property="password"/> </resultMap> <select id="getUserById" resultMap="UserMap"> select * from mybatis.user where id = #{id} </select>
-
-
ResultMap 的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。
-
ResultMap
最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。 -