当实体类属性和数据库不一致时,使用mybatis查询数据库返回实体类自动封装就会出现问题。针对这种情况,有两种解决方案。
1、使用别名查询
优点:查询效率高
缺点:如果我们的查询很多,都使用别名的话写起来很麻烦
2、定义resultMap
resultMap 标签可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装。在 select 标签中使用 resultMap 属性指定引用即可。同时 resultMap 可以实现将查询结果映射为复杂类型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。
优点:代码书写简洁,提高开发效率
缺点:查询效率低