当实体类属性和数据库不一致时,使用mybatis查询数据库返回实体类自动封装就会出现问题。针对这种情况,有两种解决方案。
1、使用别名查询
select id as userId,username as userName,birthday as userBirthday,
sex as userSex,address as userAddress from user
优点:查询效率高
缺点:如果我们的查询很多,都使用别名的话写起来很麻烦
2、定义resultMap
resultMap 标签可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装。在 select 标签中使用 resultMap 属性指定引用即可。同时 resultMap 可以实现将查询结果映射为复杂类型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。
select * from user
优点:代码书写简洁,提高开发效率
缺点:查询效率低
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。