MyBatis查询时属性名和字段名不一致问题的解决方法
问题
当我们数据库中的字段和实体类中的字段不一致的时候,查询会出问题
数据库字段是pwd
idnamepwd 1张三123456 2李四123456 3王五123456 4赵六123456
实体类字段是password
publicclassUser{ privateintid; privateStringname; privateStringpassword; }
查出来结果发现,password是null
User{id=1,name='张三',password='null'} User{id=2,name='李四',password='null'} User{id=3,name='王五',password='null'} User{id=4,name='赵六',password='null'}
原因是类型处理器
select*fromuser //类型处理器:我们查询select*实际是查询selectid,name,pwd selectid,name,pwdfromuser
解决办法
- resultMap:结果集映射
- sql起别名
selectid,name,pwdaspasswordfromuser
解决方案:resultMap
结果集映射:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps
- resultMap元素是MyBatis中最重要最强大的元素
- ResultMap的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了
我们只需要在Mapper.xml中加入结果集映射即可,且只加需要映射的字段即可
select*fromusers
总结
到此这篇关于MyBatis查询时属性名和字段名不一致问题解决的文章就介绍到这了,更多相关MyBatis查询时属性名和字段名不一致内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!