Mybatis中的映射配置(一)
当Mybatis中的实体java类的属性名与数据库表中的列名不一致时,我们可以通过配置的方法来解决。有两种如下方法:
方法一:添加resultMap标签,开发效率比较高。
<!-- 配置 查询结果的列名和实体类的属性名的对应关系 -->
<resultMap id="userMap" type="uSeR">
<!-- 主键字段的对应 -->
<id property="userId" column="id"></id>
<!--非主键字段的对应-->
<result property="userName" column="username"></result>
<result property="userAddress" column="address"></result>
<result property="userSex" column="sex"></result>
<result property="userBirthday" column="birthday"></result>
</resultMap>
补充: 此处resultMap中的id 只是一个唯一标识,无其他含义,可以任意取名,但是如果采取这种转换方式,只需将select标签中的resultType=“com.zsh.domain.User”>改为resultMap=“userMap”。具体案例如下:
<!--根据queryVo的条件查询用户 -->
<select id="findUserByVo" parameterType="com.zsh.domain.QueryVo" resultType="com.zsh.domain.User">
select * from user where username like #{user.username}
</select>
只需改为
<!-- 根据queryVo的条件查询用户 -->
<select id="findUserByVo" parameterType="com.zsh.domain.QueryVo" resultMap="userMap">
select * from user where username like #{user.username}
</select>
方法二:sql层面修改,用as一一对应。
select id as userId,username as userName,address as userAddress,sex as userSex,birthday as userBirthday from user;