list解析 mybatis_mybatis学习(七)——resultType解析

resultType是sql映射文件中定义返回值类型,返回值有基本类型,对象类型,List类型,Map类型等。现总结一下再解释

总结:

resultType:

1、基本类型  :resultType=基本类型

2、List类型:   resultType=List中元素的类型

3、Map类型    单条记录:resultType =map

多条记录:resultType =Map中value的类型

1、对象类型

对于对象类型resultType直接写对象的全类名就可以了

实例:

hotelMapper接口

packagecom.pjf.mybatis.dao;importcom.pjf.mybatis.po.Hotel;public interfaceHotelMapper {//返回值类型为Hotel

publicHotel getHotel(Integer i);

}

HotelMapper.xml

select * from hotel

where

id=#{id}

测试类:

packagecom.pjf.mybatis;importjava.io.IOException;importjava.io.InputStream;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Test;importcom.pjf.mybatis.dao.HotelMapper;importcom.pjf.mybatis.po.Hotel;public classTestHotel {public SqlSessionFactory sqlSessionFactory() throwsIOException {//mybatis的配置文件

String resource = "mybatis_config.xml";//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)TestHotel.class.getClassLoader()

InputStream is =Resources.getResourceAsStream(resource);//构建sqlSession的工厂

SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(is);returnsessionFactory;

}//查

@Testpublic void getHotel() throwsIOException {

SqlSessionFactory sessionFactory=sqlSessionFactory();

SqlSession session=sessionFactory.openSession();

HotelMapper hotelMapper= session.getMapper(HotelMapper.class);

System.out.println(hotelMapper.getClass());//直接返回Hotel对象,打印出来

Hotel hotel = hotelMapper.getHotel(1001);

System.out.println(hotel);

session.close();

}

}

2、List类型

返回值为List类型,resultType为List中对象的类型,如List,resultType为Hotel

实例:

hotelMapper接口

packagecom.pjf.mybatis.dao;importjava.util.List;importcom.pjf.mybatis.po.Hotel;public interfaceHotelMapper {//返回值为List

public ListgetHotel(Integer i);

}

hotelMapper.xml

select * from hotel

where

price>#{price}

测试类

packagecom.pjf.mybatis;importjava.io.IOException;importjava.io.InputStream;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Test;importcom.pjf.mybatis.dao.HotelMapper;importcom.pjf.mybatis.po.Hotel;public classTestHotel {public SqlSessionFactory sqlSessionFactory() throwsIOException {//mybatis的配置文件

String resource = "mybatis_config.xml";//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)TestHotel.class.getClassLoader()

InputStream is =Resources.getResourceAsStream(resource);//构建sqlSession的工厂

SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(is);returnsessionFactory;

}//查

@Testpublic void getHotel() throwsIOException {

SqlSessionFactory sessionFactory=sqlSessionFactory();

SqlSession session=sessionFactory.openSession();

HotelMapper hotelMapper= session.getMapper(HotelMapper.class);

System.out.println(hotelMapper.getClass());//返回值为List

List list = hotelMapper.getHotel(1000);for(Hotel hotel : list) {

System.out.println(hotel);

}

session.close();

}

}

3、Map类型

a、返回单条记录的map,key为属性,值为属性值。resultType为map

hotelMapper接口

packagecom.pjf.mybatis.dao;importjava.util.Map;importcom.pjf.mybatis.po.Hotel;public interfaceHotelMapper {//返回值为Map,key为属性名,value为属性值

public MapgetHotel(Integer i);

}

hotelMapper.xml

select * from hotel

where

id=#{id}

测试类,返回id=1001的酒店

packagecom.pjf.mybatis;importjava.io.IOException;importjava.io.InputStream;importjava.util.Map;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Test;importcom.pjf.mybatis.dao.HotelMapper;importcom.pjf.mybatis.po.Hotel;public classTestHotel {public SqlSessionFactory sqlSessionFactory() throwsIOException {//mybatis的配置文件

String resource = "mybatis_config.xml";//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)TestHotel.class.getClassLoader()

InputStream is =Resources.getResourceAsStream(resource);//构建sqlSession的工厂

SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(is);returnsessionFactory;

}//查

@Testpublic void getHotel() throwsIOException {

SqlSessionFactory sessionFactory=sqlSessionFactory();

SqlSession session=sessionFactory.openSession();

HotelMapper hotelMapper= session.getMapper(HotelMapper.class);

System.out.println(hotelMapper.getClass());//返回值为map

Map map = hotelMapper.getHotel(1001);

System.out.println(map);

session.close();

}

}

b、返回多条记录的map,key为任意一属性,值为对象类型。如Map,resultType为Hotel

返回多条记录的map时,key为任意一属性,值为对象类型,不过key需要通过@MapKey("hotelName")指定对象中一个属性名为key

实例:

hotelMapper接口

packagecom.pjf.mybatis.dao;importjava.util.Map;importorg.apache.ibatis.annotations.MapKey;importcom.pjf.mybatis.po.Hotel;public interfaceHotelMapper {//返回值为Map,key需要通过@MapKey("属性名")来指定javaBean中的一个属性名为key,value为对象

@MapKey("hotelName")public MapgetHotel(Integer i);

}

hotelMapper.xml文件

select * from hotel

where

price>#{price}

测试类:返回价格>1000以上的酒店

packagecom.pjf.mybatis;importjava.io.IOException;importjava.io.InputStream;importjava.util.Map;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Test;importcom.pjf.mybatis.dao.HotelMapper;importcom.pjf.mybatis.po.Hotel;public classTestHotel {public SqlSessionFactory sqlSessionFactory() throwsIOException {//mybatis的配置文件

String resource = "mybatis_config.xml";//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)TestHotel.class.getClassLoader()

InputStream is =Resources.getResourceAsStream(resource);//构建sqlSession的工厂

SqlSessionFactory sessionFactory = newSqlSessionFactoryBuilder().build(is);returnsessionFactory;

}//查

@Testpublic void getHotel() throwsIOException {

SqlSessionFactory sessionFactory=sqlSessionFactory();

SqlSession session=sessionFactory.openSession();

HotelMapper hotelMapper= session.getMapper(HotelMapper.class);

System.out.println(hotelMapper.getClass());//返回值为map

Map map = hotelMapper.getHotel(1000);

System.out.println(map);

session.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值