MyBatis入门——解决属性名和字段名不一致的问题
Tips:请先阅读:
一、MyBatis入门——第一个MyBatis项目搭建文章
https://blog.csdn.net/Gauss7/article/details/115264612
二、MyBatis入门——基本CRUD代码编写
https://blog.csdn.net/Gauss7/article/details/115280533
三、MyBatis入门——配置解析
https://blog.csdn.net/Gauss7/article/details/115309923
数据库中的字段:
新建一个项目,拷贝之前的,测试实体类字段不一致的情况:
public class User {
private int id;
private String name;
private int age;
private String sex;
private String address;
}
<select id="getUserById" parameterType="int" resultType="user">
select * from user where id = #{id}
</select>
测试时出现问题"address=null":
解决方法主要有两种,如下所示。
一、SQL语句起别名"as"
”addr as address“
<select id="getUserById" parameterType="int" resultType="user">
select id,name,age,sex,addr as address from user where id = #{id}
</select>
二、resultMap
结果集映射
数据库 column: id name age sex addr
实体类属性 property:id name age sex address
<resultMap id="UserMap" type="user">
<!-- <result column="id" property="id"/>-->
<!-- <result column="name" property="name"/>-->
<!-- <result column="age" property="age"/>-->
<!-- <result column="sex" property="sex"/>-->
<result column="addr" property="address"/>
</resultMap>
<select id="getUserById" parameterType="int" resultMap="UserMap">
select * from user where id = #{id}
</select>
resultMap
元素是 MyBatis 中最重要最强大的元素。- ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
ResultMap
的优秀之处——虽然你已经对它相当了解,但是你完全可以不用显式地配置它们。- 如果这个世界总是这么简单就好了!