5-Mybatis 的输出结果封装

一、resultType 配置结果类型

1.概述

resultType 属性可以指定结果集的类型,它支持基本类型和实体类类型。
 
需要注意的是,它和 parameterType 一样,如果注册过类型别名的,可以直接使用别名。没有注册过的必须
使用全限定类名。例如:我们的实体类此时必须是全限定类名,
同时,当是实体类名称时,还有一个要求, 实体类中的属性名称必须和查询语句中的列名保持一致 ,否则无法
实现封装。

2.基本类型示例、实体类类型示例前面有

3.特殊情况示例(实体类属性和表的列名不一致)

a.修改实体类

private String userName;//列名是username

b.测试查询结果

@Test
public void testFindAll() {
List users = userDao.findAll();
for(User user : users) {
System.out.println(user);
} }

5-Mybatis 的输出结果封装_第1张图片

为什么名称会有值呢?
因为: mysql windows 系统中不区分大小写!
 

c.修改映射配置

5-Mybatis 的输出结果封装_第2张图片

思考:
如果我们的查询很多,都使用别名的话写起来岂不是很麻烦,有没有别的解决办法呢?
请看下一小节。

二、resultMap 结果类型

resultMap 标签可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装。
select 标签中使用 resultMap 属性指定引用即可。同时 resultMap 可以实现将查询结果映射为复杂类
型的 pojo ,比如在查询结果映射对象中包括 pojo list 实现一对一查询和一对多查询。

1.定义 resultMap

    
    
    
        
        
    
id 标签:用于指定主键字段
result 标签:用于指定非主键字段
column 属性:用于指定数据库列名
property 属性:用于指定实体类属性名称

2.映射配置


    

3.测试结果

5-Mybatis 的输出结果封装_第3张图片

你可能感兴趣的:(mybatis)