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;
本文详细介绍了在Mybatis中解决实体类属性名与数据库表列名不一致的问题,提供了两种有效方法:一是使用resultMap标签进行列名与属性名的映射;二是通过SQL查询时使用as关键字进行字段别名定义。
1557

被折叠的 条评论
为什么被折叠?



