04 解决实体类和字段名冲突问题

  • 简介
  • 1. 给字段取一个别名,别名和实体类属性名相同
  • 2. 定义resultMap

简介

当表字段和Java Bean 类中属性不一致(Java采用驼峰命名,表采用下划线命名)时,MyBatis 是无法实现自动封装数据,此时我们需要手动指定表字段和属性的对应关系(类似Hibernate 中实体映射文件)。在MyBatis 中处理不一致有如下两种方案:

1. 给字段取一个别名,别名和实体类属性名相同

select user_id as userId ,age,sex,nick_name nickName 
from userinfo 
where user_id = #{id}

查询语句返回的是一张虚拟表,MyBatis 可自动对虚拟表进行封装。给字段去别名(别名和属性一致)后,表的字段名就和属性名一致,MyBatis 就可以实现自动封装。

2. 定义resultMap

 <resultMap id="BaseResultMap" type="com.javaee.mybatis.pojo.Userinfo" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="phone" property="phone" jdbcType="VARCHAR" />
    <result column="nick_name" property="nickName" jdbcType="VARCHAR" />
    <result column="re_account" property="reAccount" jdbcType="VARCHAR" />
    <result column="email" property="email" jdbcType="VARCHAR" />
    <result column="login_pwd" property="loginPwd" jdbcType="VARCHAR" />
    <result column="last_login_time" property="lastLoginTime" jdbcType="TIMESTAMP" />
    <result column="state" property="state" jdbcType="TINYINT" />
  resultMap>

你可能感兴趣的:(Java框架,MyBatis)