Mybatis如何通过泛型来动态调整返回参数

简介: Mybatis如何通过泛型来动态调整返回参数

在我们使用Mybatis的时候,会设置一个resultType类型,这个类型一般指定为java.util.Map,如此的话,我们就可以使用List,Map来接收返回结果了。

现在想要的效果其实就是想要在service层分别用两种不同的类型的进行接收同一个SQL的参数。

就比如如下的代码中一样的。

List<ADemo> list1 = demoDao.findDemo();
Long total = demoDao.findDemo();

这里我们就来看一下具体的实现吧。

知识点

首先想要的解决方式就是泛型,只有泛型才能指定不同的类型之间的转换。

这里我们要说的是如何给方法加入泛型,以满足返回值类型不同的情况。

方法加泛型,自然就是用来修饰了,如下代码。

<T> T findDemo();

上面的代码就可以使用任何返回类型来接收了。

但是很重要的一点,当resultType=java.util.Map的时候,这样写的时候是会报错的。

所以我们就改写了一种的方式。

<T> List<T> findDemo();

这样,我们换了一种方式,如上代码所示,果然,很完美的运行了,随着泛型不同的方式注入,如下代码:

List<ADemo> list1 = demoDao.findDemo();
List<Map<String,Long>> list2 = demoDao.findDemo();

如果想要取到之前的Long值,就可以使用list2.get(0).get('total')进行获取对应的long值了。

如此虽然没有全部实现想要的效果,但是也在允许范围之内解决了这个问题。

目录
相关文章
|
1月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
21 1
|
1月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
28 1
|
1月前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
15 1
|
1月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
24 1
|
1月前
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
22 2
|
1月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
18天前
|
Java 关系型数据库 MySQL
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
|
1月前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
20 1
|
1月前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
15 1
|
1月前
Mybatis+mysql动态分页查询数据案例——房屋信息的接口(IHouseDao)
Mybatis+mysql动态分页查询数据案例——房屋信息的接口(IHouseDao)
12 1