mybatis 调用存储过程,处理返回2个不同类型的结果集

有个需求,就是在mybatis中获取2个不同类型的结果集,使用一个对象接收时,会报错:

Expected one result (or null) to be returned by selectOne()

查找网上是说:查询方法中得到两个两个结果集,然而你的返回用了一个实体去接收,程序这个时候就不知道如何去分配了,很果断的报这个错


后面解决的方案就是:

xml:


其中:


		




		


Mapper:使用List> 接收就好了:

public interface TestMapper {
	public List> getTest(@Param("@p_ID") String userName,
			@Param("@p_NO") String banbie,
			@Param("@p_Flag1") String flag1, @Param("@p_Flag2") String flag2);
}

最后在service里获取数据作转换:

List> map = testMapper.getTest(userName, banbie, flag1, flag2);
		Map> maps = new HashMap>();
		if (map!=null && map.size() > 1) {//结果为2个结果集
			maps.put("oneList", (List) map.get(0));
			maps.put("twoList", (List) map.get(1));
		}
		return maps;



最后调试OK啦~~~~~好久都没有写服务端的代码了,努力~!!


		

你可能感兴趣的:(java)