一.需求:
使用存储过程查询数据库,返回了多个结果集,需要使用java接收和处理。并且展示到前端页面
二.环境:
springboot+mybatis
三.解决过程:
- 存储过程:
<!--返回结果集的配置-->
<!--column:数据库列的字段名称
jdbcType:数据库字段类型
property:实体类字段
javaType:实体类字段类型-->
<!-- statementType="CALLABLE" 这个是必须要的-->
<resultMap type="com.demo.test" id="result1">
<result column="user" jdbcType="VARCHAR" property="user" javaType="String" />
<result column="age" jdbcType="INTEGER" property="age" javaType="Integer" />
<result column="money" jdbcType="FLOAT" property="phone" javaType="Double" />
</resultMap>
<resultMap type="com.demo.test" id="result2">
<result column="user" jdbcType="VARCHAR" property="user" javaType="String" />
<result column="age" jdbcType="INTEGER" property="age" javaType="Integer" />
<result column="money" jdbcType="FLOAT" property="phone" javaType="Double" />
</resultMap>
<resultMap type="com.demo.test" id="result3">
<result column="user" jdbcType="VARCHAR" property="user" javaType="String" />
<result column="age" jdbcType="INTEGER" property="age" javaType="Integer" />
<result column="money" jdbcType="FLOAT" property="phone" javaType="Double" />
</resultMap>
<!-- sql-->
<select id="getlist" statementType="CALLABLE" parameterType="com.demo.test" resultMap="result1,result2,result3">
exec test
@username= #{username}
</select>
2.dao层接收
public List<List<test>> getlist(Test test);
3.server处理:
循环遍历或者直接输出,视业务情况而定。