Mybatis入门之 resultType返回值类型介绍

结合上篇mybatis入门文章的介绍,项目目录保持不变,只需要修改mapper接口和xml映射文件即可。利用person数据库,person中现有的数据记录如下:
在这里插入图片描述

一、返回一般的数据类型,String或者int

比如根据id属性获取数据库中的某个字段

PersonMapper接口:

//返回String类型
public String getPerNameById(Integer id);
// 返回int类型
public Integer getPerAgeById(Integer id);

PersonMapper.xml映射文件

<select id="getPerNameById" resultType="java.lang.String">
    select name from person where id = #{id};
</select>

<select id="getPerAgeById" resultType="java.lang.Integer">
    select age from person where id = #{id};
</select>

测试方法:

String name = mapper.getPerNameById(1);
System.out.println(name); //kk

Integer age = mapper.getPerAgeById(3);
System.out.println(age); //26

二、返回javaBean类型

例如:根据某个字段查询结果,将结果封装成某个JavaBean类型的数据

PersonMapper接口:

// 返回javaBean类型
public Person getPersonById(Integer id);

PersonMapper.xml映射文件

<select id="getPersonById" resultType="com.diligentkong.mybatis.bean.Person">
    select id,name,age from person where id = #{id}
</select>

测试方法:

Person person = mapper.getPersonById(1);
System.out.println(person);  //Person(id=1, name=kk, age=16)

三、返回List类型

当我们进行模糊查询或者全表查询时,返回的数据有可能是多条记录,可以将数据存放在list中。

PersonMapper接口:

// 返回list类型
public List<Person> getPersonByNameLike(String name);

PersonMapper.xml映射文件:

<!--resultType:如果返回的是一个集合,要写集合中元素的类型-->
<select id="getPersonByNameLike" resultType="com.diligentkong.mybatis.bean.Person">
    select * from person where name like #{name }
</select>

测试方法:

List<Person> list = mapper.getPersonByNameLike("%k%");
for (Person p : list){
    System.out.println(p);
}

Person(id=1, name=kk, age=16)
Person(id=5, name=kong, age=18)

四、返回map

PersonMapper接口:

//返回map类型 ,返回一条记录的map,key就是列名,值就是对应的值
public Map<String,Object> getPersonByIdReturnMap(Integer id);

PersonMapper.xml映射文件

<select id="getPersonByIdReturnMap" resultType="map">
    select * from person where id = #{id}
</select>

测试方法:

Map<String,Object> map = mapper.getPersonByIdReturnMap(5);
System.out.println(map);
{name=kong, id=5, age=18}

PersonMapper接口:

//告诉mybatis封装这个map的时候使用哪个属性作为map的key
@MapKey("name")
public Map<String,Person> getPersonByNameLikeReturnMap(String name);

PersonMapper.xml映射文件:

<select id="getPersonByNameLikeReturnMap" resultType="com.diligentkong.mybatis.bean.Person">
    select * from person where name like #{name}
</select>

测试方法:

Map<String,Person> map = mapper.getPersonByNameLikeReturnMap("%k%");
  System.out.println(map);

{kk=Person(id=1, name=kk, age=16), kong=Person(id=5, name=kong, age=18)}

    由于我们查询的结果返回的列名与实体类中的字段名一致,可以使用resutType。
当sql的列名和实体类的属性名不一致时,这时就要使用resultMap。
resultMap可以自定义结果集映射规则 ,resultMap与resultType只能二选一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值