在前面【SSM框架入门】mybatis的增删改查操作中,mysql中user表字段名和实体类中的属性名一一对应,所有增删改查操作都能正常执行。但是当实体类中属性名与mysql表中字段名不对应时,mybatis无法映射。
此时把mapper文件的值修改为实体类的属性名,增删改是可以正常执行的。
但是进行查询操作时输出结果中除了userName,其余属性全为null
这是因为实体类中的属性名和user表字段名不一样,mybatis无法完成映射(userName不为空是因为mysql在window下不区分大小写)。
此时可以通过起别名或者配置查询结果的列名和实体类属性名的对应关系解决映射问题
1. 起别名
输出结果
2. 配置resultMap标签
<!-- 配置 查询结果的列名和实体类的属性名的对应关系 -->
<resultMap id="userMap" type="com.ssm.domain.User">
<!-- 主键字段的对应 -->
<id property="userId" column="id"></id>
<!-- 非主键字段的对应 -->
<result property="userName" column="username"></result>
<result property="userBirthday" column="birthday"></result>
<result property="userSex" column="sex"></result>
<result property="userAddress" column="address"></result>
</resultMap>
并把select标签中的resultType属性改为resultMap
输出结果