mybatis,oracle存储过程返回结果集

20 篇文章 2 订阅
9 篇文章 1 订阅

Mapper层代码

	<!-- 调用存储过程返回结果集 -->
	<select id="proTest" parameterType="java.util.Map" statementType="CALLABLE">
<![CDATA[
		call PRO_TEST#{REBACK,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=resDeleteList})
]]>
</select>

@MapperScan
public interface ProMapper {
	void proTest(Map<String, Object> param);
}

实体类

public class ProPojo {

    private String tableName;
    private Integer num;

    public ProPojo() {
    }

    public ProPojo(String tableName, Integer num) {
        this.tableName = tableName;
        this.num = num;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }
}

server实现层代码,用到了SpringMvc  注入Mapper接口

  @Resource
    ProMapper  proMapper ;
  

    public List<OrderDeletePojo> proTestImpl(Map<String, Object> obj) {
        try {
            Map<String, Object> param = new HashMap<>(1);
            param.put("REBACK", OracleTypes.CURSOR);
            proMapper.proTest(param);
            List<ProPojo> depts = (List<ProPojo>) param.get("REBACK");
            return depts;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

oracle存储过程

create or replace PROCEDURE PRO_TEST(REBACK out sys_refcursor) 
Authid Current_User

AS

BEGIN
--返回结果集到java代码
open REBACK for SELECT 'abc' as TABLE_NAME,2 as NUM FROM dual;
END ;

最后自己写个接口调用server层方法即可,获取存储过程返回的结果集

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值