Mybatis实体类属性名与数据库类名不对应的两种解决方法

在Mybatis开发时,如果 Bean的属性名与数据库的类名不一致时,CRUD将出现问题。
数据库类名
在这里插入图片描述
Bean的属性名:(默认)
在这里插入图片描述
调整Bean中的属性名:(测试不一致)
在这里插入图片描述
此时原有代码将会报错,可预见的报错为 java文件中所有用到set,与get方法的地方。
不可以预见的报错,在配置文件中。
在这里插入图片描述
方法一{测试,有问题}
在配置文件中,将所有的属性值调整成与Bean中的属性名一致。
在插入和更新操作中不存在问题。问题来了!!!
在进行【查询操作时】----->查询所有!
在这里插入图片描述
只有username封装到数据库中了,其他字段都没有被封装到数据库中!
原因:MySQL数据库在Windows系统下区分大小写!
在这里插入图片描述
所以只有username被封装到了数据库中!

解决办法
1、使用别名
映射配置文件中修改

在这里插入图片描述
结果:
在这里插入图片描述
优点:执行效率高,因为是在SQL语句的层面上解问题。

2、配置resultMap

在这里插入图片描述
在这里插入图片描述
缺点:执行效率(多一次解析)较低
优点:开发效率变快,因为所有的查询操作,都可以将resultType返回结果集改成resultMap,后续改造很便 利。如果使用第一种给 SQL 列表 起 别名,SQL语句改造量比较大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值