首页 > 数据库 >mybatis 调用 oracle 带包存储过程(有out参数)

mybatis 调用 oracle 带包存储过程(有out参数)

时间:2023-04-21 09:58:28浏览次数:45  
标签:map 调用 mybatis 参数 带包 oracle call out

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 不是结果集)

}

只是一个例子,调用其他带包存储过程的时候只需要改变参数个数和名称就好

标签:map,调用,mybatis,参数,带包,oracle,call,out
From: https://www.cnblogs.com/zhoading/p/17339250.html

相关文章

  • oracle数字类函数
    Oracle数据库中所有的数字类函数:ABS:返回指定数值的绝对值ACOS:返回指定角度的反余弦值ASIN:返回指定角度的反正弦值ATAN:返回指定数字的反正切值ATAN2:返回两个数值的反正切值CEIL:返回大于或等于指定数字的最小整数(向上取整)COS:返回指定角度的余弦值COSH:返回......
  • oracle字符类函数
    Oracle数据库中所有的字符类函数:ASCII:返回某个字符的ASCII码值ASCIISTR:返回字符的ASCII码值的字符串表示CHR:返回指定ASCII码对应的字符CONCAT:连接两个字符串CONVERT:将一个字符集转换成另一个字符集INITCAP:将字符串每个单词首字母大写INSTR:返回字符串中子串的......
  • oracle日期和时间类函数
    Oracle中所有的日期和时间类函数:SYSDATE:返回当前日期和时间CURRENT_DATE:返回当前日期CURRENT_TIMESTAMP:返回当前的日期和时间戳LOCALTIMESTAMP:返回当前时间戳TIMESTAMPADD:在日期上增加一定的数量TIMESTAMPDIFF:计算两个日期之间的时间差EXTRACT:从日期时间......
  • Junit启动测试mybatis xml文件BindingException: Invalid bound statement问题
    背景:1、正常启动,xml文件放在java目录和resource目录下均正常2、junit启动,xml文件放在resource目录下正常,放在java目录下报BindingException错误mapperlocation绑定地址为:"classpath:com/a/b/**/*.xml" 原因就在于绑定的地址有问题。 junit生成的test-classes下的测......
  • Mybatis Plus传入参数0不起作用
    错误还原:在查询的过程中,传入的workType为0时,该条件不起作用<selectid="xxx">SELECTdi.id,di.name,di.work_type,di.updated...<where><iftest="name!=nullandname!=''">andd......
  • oracle去掉回车换行空格操作
    评:去除换行updatezhzl_addresstsett.add_administration_num=replace(t.add_administration_num,chr(10),'');去掉回车updatezhzl_addresstsett.add_administration_num=replace(t.add_administration_num,chr(13),'');去掉空格updatezhzl_addre......
  • Oracle“ORA-38104: 无法更新ON子句中引用的列”解决方式
    参考:MERGEINTOQLIK_CONFIG_MAPPING_REPORTUSINGdualON(CONFIG_ID=2ANDREPORT_ID=6)WHENMATCHEDTHENUPDATESET"CONFIG_ID"=2,"REPORT_ID"=6WHENNOTMATCHEDTHENINSERT("CONFIG_ID","REPORT_ID")VALUES(2,6);......
  • excel文档导入到Oracle表中方法
    第一种方式:excel文本中的列名最好是英文名,方便导入的时候对数据库表中的列名,中文名可能会出错另一种方法:该方法比较简便可以直接通过'select*from表名forupdate',直接复制粘贴excel中的字段到表中第一种方式导入:在plsql中,工具→ODBC导入器→来自ODBC的数据输入用户/系统......
  • Oracle 开窗函数 三个排序函数的区别
    1.ROW_NUMBER2.RANK3.DENSKRANK这三个函数都是依托窗口函数进行的分组后的排序,对于排序的特点有些细节的区别ROW_NUMBER()就是简单地按照Partitionby要分组的字段排序,若orderby后的字段值相同会区分出大小(原则不详),整体来说是的由1到N的排序selectt.*,row_number()over......
  • oracle 长事务处理过程
    1.定位具体xid和sql,可以看到回滚段大小,具体的sqlidSQL>@transSIDSERIAL#USERNAMEUSED_UBLKUSED_URECSTATUSSTART_DATEXID-----------------------------------------------------------------------------------------------4976069SYS 1 ......