本节示例代码在 mybatis-demo-005 。
在 MyBatis:查找id为1的用户信息 中的 User 定义如下:
类中的变量名称和数据库中的user表的列名是一致的。
能做到不一致吗?能!
修改 User 类
修改为以下内容:
User类中的变量name改成了username,这和blog_db数据库中user表中的name字段对应不起来。
此时,若执行下面的代码:
结果将是:
username 是 null 。我们可以通过修改 UserMapper.xml ,指定user表中的列名和 User 类中的变量名的对应关系。
修改 UserMapper.xml
修改为以下内容:
在<resultMap>
中,User类中的username和表中的name对应了起来(建立了映射关系)。<resultMap>
的id是userResult,<select>
中也添加了属性resultMap,值为userResult,用来指向上面的<resultMap>
。
此时,若执行下面的代码:
结果将是:
另外一个方案
这个方案非常简单,不需要在 UserMapper.xml 加 resultMap,直接将查询语句
改写成
即可。