Mybatis 调用多游标参数存储过程 Mybatis Oracle Procedure multi cursor
2014-05-15 11:56
555 查看
网上关于Mybatis调用多游标参数存储过程的例子很少,今天正好用到,并写了个例子,记录下来,以备后用,希望对你也有所帮助!
环境:
Mybatis3
Oracle11g
JUnit4
Oracle Procedure:
接口:IDeliveryDAO
DeliveryMapper.xml
运行结果:
参考:
http://www.apachebookstore.com/confluence/oss/display/IBATIS/Oracle+REF+CURSOR+Solutions?decorator=printable http://wang3065.iteye.com/blog/1019049 http://liuzan.blog.51cto.com/6103676/1211162
环境:
Mybatis3
Oracle11g
JUnit4
Oracle Procedure:
create or replace procedure test_getDeliverys( idList IN VARCHAR2, cur_delivery out sys_refcursor, cur_delivery1 out sys_refcursor) is begin open cur_delivery for select ID,PUBMEMBERID from delivery; open cur_delivery1 for select ID,PUBMEMBERID from delivery; end test_getDeliverys;
接口:IDeliveryDAO
public void getDeliverys123(Map<String, Object> deliverys);
DeliveryMapper.xml
<resultMap id="dMap" type="com.rcollar.rcmtm.order.entity.Delivery"> <id column="ID" jdbcType="VARCHAR" property="id" /> <result column="PUBMEMBERID" jdbcType="VARCHAR" property="pubmemberid" /> </resultMap> <parameterMap id="paramMap" type="java.util.HashMap"> <parameter property="idList" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/> <parameter property="deliverys" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="dMap"/> <parameter property="deliverys1" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="dMap"/> </parameterMap> <select id="getDeliverys123" parameterMap="paramMap" resultType="java.util.Map" statementType="CALLABLE"> <![CDATA[ call test_getDeliverys(?,?,?) ]]> </select>JUnit4 Test
public class IDeliveryDAOTest extends BasicSpringBasedTest{ private static Logger log = Logger.getLogger(IDeliveryDAOTest.class); @SuppressWarnings("unchecked") @Test public void test() { IDeliveryDAO dao = (IDeliveryDAO) ApplicationContextUtil .getApplicationContext().getBean("iDeliveryDAO"); try { Map<String, Object> param = new HashMap<String, Object>(); param.put("idList", "11"); param.put("deliverys", OracleTypes.CURSOR); param.put("deliverys1", OracleTypes.CURSOR); dao.getDeliverys123(param); List<Delivery> deliveryList = (List<Delivery>) param.get("deliverys"); for (Delivery d : deliveryList) { log.info("111++++++:"+d.getPubmemberid()+"; +++++"+d.getId()); } List<Delivery> deliveryList1 = (List<Delivery>) param.get("deliverys1"); for (Delivery d : deliveryList1) { log.info("222++++++:"+d.getPubmemberid()+"; +++++"+d.getId()); } } catch (Exception e) { log.error(e.getMessage()); } } }
运行结果:
[2014-05-15 11:56:08.581] [INFO] [main] [IDeliveryDAOTest:39] - 111++++++:2c9082193a4f1dd0013a52c0262f0011; +++++61 [2014-05-15 11:56:08.581] [INFO] [main] [IDeliveryDAOTest:39] - 111++++++:aae004e93fd248e4013fd57c71860021; +++++c2cb69c36f144b1da2f20bf6e139af49 [2014-05-15 11:56:08.581] [INFO] [main] [IDeliveryDAOTest:39] - 111++++++:aae004e93fd248e4013fd57c71860021; +++++4397b7aa9d3344d98941c7ac3fb0fb85 [2014-05-15 11:56:08.581] [INFO] [main] [IDeliveryDAOTest:39] - 111++++++:aae004e93fd248e4013fd57c71860021; +++++2a23e9c68bae48bf9eaf39c6894ed013 [2014-05-15 11:56:08.591] [INFO] [main] [IDeliveryDAOTest:43] - 222++++++:2c9082193a4f1dd0013a52c0262f0011; +++++61 [2014-05-15 11:56:08.591] [INFO] [main] [IDeliveryDAOTest:43] - 222++++++:aae004e93fd248e4013fd57c71860021; +++++c2cb69c36f144b1da2f20bf6e139af49 [2014-05-15 11:56:08.591] [INFO] [main] [IDeliveryDAOTest:43] - 222++++++:aae004e93fd248e4013fd57c71860021; +++++4397b7aa9d3344d98941c7ac3fb0fb85 [2014-05-15 11:56:08.591] [INFO] [main] [IDeliveryDAOTest:43] - 222++++++:aae004e93fd248e4013fd57c71860021; +++++2a23e9c68bae48bf9eaf39c6894ed013
参考:
http://www.apachebookstore.com/confluence/oss/display/IBATIS/Oracle+REF+CURSOR+Solutions?decorator=printable http://wang3065.iteye.com/blog/1019049 http://liuzan.blog.51cto.com/6103676/1211162
相关文章推荐
- Day60-Oracle04 - PLSQL编程、游标cursor、例外exception、存储过程(procedure)、存储函数(function)、java调用存储过程、触发器(trigger)
- The DataDirect provider for Oracle调用存储过程使用Cursor类型参数
- mybatis调用存储过程 无参、带有输入输出参数,输出游标类型的 存储
- ORACLE语法-包(package)、存储过程(procedure)、游标(cursor)以及java对Result结果集的处理
- hibernate里使用jdbc方式调用oracle带游标返回参数的简单分页存储过程
- MyBatis调用存储过程,含有返回结果集、return参数和output参数
- C#调用Oracle带有out游标参数存储过程的问题
- Oracle使用游标循环调用存储过程
- MyBatis调用存储过程,含有返回结果集、return参数和output参数
- oracle创建触发器调用含参数存储过程
- oracle 动态调用存储过程,返回游标类型
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程
- java调用oracle 存储过程 以及游标使用
- MyBatis调用存储过程,含有返回结果集、return参数和output参数 .
- 利用游标返回结果集的的例子(Oracle 存储过程)JAVA调用方法和.NET调用方法
- jdbc调用存储过程-oracle版 返回游标
- Oracle sys_refcursor 游标变量不能用作参数传递
- Oracle 存储过程 调用带有 out 参数的存储过程
- oracle 存储过程 带游标作为OUT参数输出
- C# 对应 Oracle 存储过程 的 SYS_REFCURSOR 应该 传入什么类型的参数?