mybatis调用Oracle存储过程 带游标
存储过程
CREATE OR REPLACE PROCEDURE proc_test2(p_id IN NUMBER,
v_cur OUT SYS_REFCURSOR,
p_result_code OUT NUMBER,
p_result_message OUT VARCHAR2) AS
BEGIN
p_result_message := '成功';
p_result_code := '1';
open v_cur for
select 1 id, 'test01' name
from dual
union all
select 2, 'test02' from dual;
END;
调用测试
游标
Mapper.xml
<resultMap id="BaseResultMap2" type="com.lxw.lxwDemo.pojo.Test">
<id column="ID" property="id" jdbcType="DECIMAL" />
<result column="NAME" property="name" jdbcType="VARCHAR" />
</resultMap>
<select id="proc_test2" statementType="CALLABLE">
{call proc_test2(
#{p_id,jdbcType=DECIMAL,mode=IN},
#{v_cur,jdbcType=CURSOR,mode=OUT,resultMap=BaseResultMap2,javaType=java.sql.ResultSet},
#{p_result_code,jdbcType=DECIMAL,mode=OUT},
#{p_result_message,jdbcType=VARCHAR,mode=OUT}
)}
</select>
Mapper
void proc_test2(Map map);
调用测试
@Autowired
private TestMapper testMapper;
@Test
public void proc_test2() {
Map map=new HashMap();
testMapper.proc_test2(map);
List<com.lxw.lxwDemo.pojo.Test> tests= (List) map.get("v_cur");
System.out.println(map);
System.out.println(JSON.toJSONString(map));
System.out.println(JSON.toJSONString(tests));
}
结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?