新建一个项目,拷贝之前的,mybatis-02,测试实体类字段不一致的情况。

主要是这三部分的内容。
在实体类中,将密码改为password而不是pwd

全部删除干净,只留一个根据ID查询。


测试里面也进行修改。
发现测试之后,password结果为空。
解决:
方法一:起别名
// select * from mybatis.user where id = #{id}
// 会发现这样处理之后,sql语句是select id,name,pwd from...这里没有pwd所以需要起别名
所以将sql起别名,修改为
select id,name,pwd as password from mybatis.user where id = #{id}

成功!
使用ResultType结果集映射。

现在为止,和原先resultType=User效果是一样的,
column是数据库中的列,property是java实体类中的属性,进行修改,下面是修改之后的内容。
UserMapper.xml:
- "1.0" encoding="UTF-8" ?>
- mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.Li.dao.UserMapper">
-
-
- <resultMap id="UserMap" type="User">
- <result column="pwd" property="password"/>
- resultMap>
-
-
- <select id="getUserById" resultMap="UserMap">
- select * from mybatis.user where id = #{id}
- select>
-
- mapper>
测试之后成功!
