数据库中的字段和实体类中的字段不一致

当数据库中的字段和实体类中的字段不一致时,要想将查询到的数据完美的封装进实体类中有三种方法:

  1、使用别名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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,那么可以开启驼峰命名规则

1
2
3
4
5
6
<configuration>
<!--设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false--> 
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

  

  3、使用resultMap对结果集进行自定义封装(xxx可以随意命名,但是一定要确保它们的名字要一致)

1
2
3
4
5
6
7
8
9
10
11
12
13
<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>

  

 

posted @   变体精灵  阅读(2819)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示