Mybatis的输出结果封装

mybatis的输出结果封装

resultType属性可以指定结果集的类型,它支持基本类型和实体类类型。

需要注意的是,它和parameterType一样,如果注册过类型别名的,可以直接使用别名。

没有注册过的必须使用全限定类名。

同时,当是实体类名称是,还有一个要求,实体类中的属性名称必须和查询语句中的列名保持一致,否则无法实现封装。

当实体类属性和数据库表的列名不一致时:

修改实体类代码:(此时的实体类属性和数据库表的列名已经不一致了)

 

 

 

数据库列名:

此时若是还是使用原来的映射配置文件

<!-- 配置查询所有操作 -->

 

执行查询后的结果:

 

 

为什么名称会有值呢?

 因为 mysql在windows系统中不区分大小写! LInux系统下严格区分大小写

 

解决思路一:使用别名进行查询

此时 若修改映射配置   使用别名进行查询

 

 此时可以将结果正常封装进去

 

解决思路二:使用resultMap结果类型

resultMap标签可以建立  查询的列名  和  实体类的属性名称  不一致时  建立对应关系。从而实现封装。

 在select标签中使用resultMap属性指定引用即可。

同时resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list  实现一对一查询和一对多查询。

 定义resultMap

 

  resultMap标签中:

 

    type属性:指定实体类的全限定类名

 

    id属性:给定一个唯一标识,是给查询select标签引用用的。

 

  id标签:用于指定主键字段

 

  result标签:用于指定非主键字段

 

    column属性:用于指定数据库列名

 

    property属性:用于指定实体类属性名称

 

 

 结果:

 

posted @ 2020-08-11 22:47  梦想0高度  阅读(317)  评论(0编辑  收藏  举报