https://blog.csdn.net/u010925982/article/details/102958001
1.先写xml映射文件
<select id="call" parameterType="java.util.HashMap" statementType="CALLABLE" resultType="java.util.HashMap">
<!--call 包名.方法名(参数)--> <!--接收参数的 类型 jdbcType=CURSOR 必填-->
{call PKG_WARD.PGetWardPatientsAll(
#{SITES_CODE_IN,mode=IN},
#{v_cursor,jdbcType=CURSOR,mode=OUT,javaType=java.sql.ResultSet,resultMap=resultMap}
)}
</select>
<!--out参数必须有一个resultMap接收-->>
<resultMap id="resultMap" type="java.util.LinkedHashMap"></resultMap>
2.在写mapper接口
public List<LinkedHashMap> call(Map map);
3.最后写测试类
@Test
public void test(){
//结果集返回给out参数,用map接收
HashMap<Object, Object> map = new HashMap<>();
map.put("SITES_CODE_IN","121"); //第一个in参数
map.put("v_cursor",""); //第二个接收参数
List<LinkedHashMap> call = testOneMapper.call(map); //把map传入mapper方法
System.out.println(map); //得到结果集 (看好了打印的是参数map 不是结果集)
}
只是一个例子,调用其他带包存储过程的时候只需要改变参数个数和名称就好