Mybatis封装时字段名和实体类名不一致解决方法

当数据库查询结果中的字段名与实体类属性名不匹配时,会导致字段值无法自动封装。解决方案包括:1)SQL查询时使用别名;2)配置MyBatis的结果映射;3)开启驼峰命名规则映射。确保实体类属性与数据库字段对应,才能正确填充对象。
摘要由CSDN通过智能技术生成

我们看到查询返回的结果中大部分字段是有值的,但是deptId,createTime,updateTime这几个字段是没有值的,而数据库中是有对应的字段值的,这是为什么呢?

原因:如果实体类属性名和数据库表查询返回的字段名不一致,不能自动封装。

解决方案:

1. 起别名

@Select(" ....+dept_id AS deptId, create_time AS createTime +...from emp where id=#{id}")

public Emp getById(Integer id);

2. 结果映射

@Results({@Result(column = "dept_id", property = "deptId"),

@Result(column = "create_time", property = "createTime"),

@Result(column = "update_time", property = "updateTime")})

@Select("select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time from emp where id=#{id}")

public Emp getById(Integer id);

3. 开启驼峰命名

# 在application.properties或者application.yml中添加:

mybatis.configuration.map-underscore-to-camel-case=true

要使用驼峰命名前提是 实体类的属性 与 数据库表中的字段名严格遵守驼峰命名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值