当数据库中的字段和实体类中的字段不一致时,要想将查询到的数据完美的封装进实体类中有三种方法:
1、使用别名
public class User {
private Integer id;
private String userName;
private String password;
private String userInformation;
public User() {
}
// 根据用户id查询出一条用户记录
public abstract User queryUserById(User user);
<select id="queryUserById" resultType="com.mybatis.domain.User">
SELECT ID,PASSWORD,USER_NAME userName,USER_INFORMATION AS userInformation FROM tbl_user
<where>
ID = #{id}
</where>
</select>
2、如果是Mybatis,并且满足如下规则: 数据库字段: USER_INFORMATION 实体类属性:userInformation,那么可以开启驼峰命名规则
<configuration>
<!--设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
3、使用resultMap对结果集进行自定义封装(xxx可以随意命名,但是一定要确保它们的名字要一致)
<resultMap id="xxx" type="com.mybatis.domain.User">
<id property="id" column="ID"></id>
<result property="userName" column="USER_NAME"></result>
<result property="password" column="PASSWORD"></result>
<result property="userInformation" column="USER_INFORMATION"></result>
</resultMap>
<select id="queryUserById" resultMap="xxx">
SELECT ID,PASSWORD,USER_NAME,USER_INFORMATION FROM tbl_user
<where>
ID = #{id}
</where>
</select>