写在前面:在mybatis中操作oracle的数据,不复杂,也不困难。只是第一次用,入了很多坑,记录一下。在此之前需要一些简单的配置,此前一篇博客已经做了简单叙述:
https://www.cnblogs.com/studentc/p/11078229.html
调用oracle存储过程,这里只写出mapper.xml,其他的基本与操作mysql类似。
注:这里必须写一个注意,因为就是这么一段简单的sql,耗了我几个小时。唉,是我太水了,必须记录一下。
1.statementType="CALLABLE" 表明调用的是一个存储过程
2. user.one:one是存储过程的名字, 调用存储过程时,最好是包名.存储过程名,不然很多时候会找不到该过程而报错。
3.如果是入参,记得加mode=IN,IN切记大写,否则报错。如果有输出参数,记得加mode=OUT,否则报错,找不到out参数。然后你把错误信息cv去找度娘,花了很多时间,看了很多文章,试了很多操作,却依然无果。其实并不是什么很复杂的问题,可能仅仅是因为少了mode=OUT。至少我是如此。
通过dblink调存储过程
dblink中调存储过程,只需在过程名后加@dblink名字,然后再写参数,没有其他太需要注意的地方。
{call USER.USERADD@DBLINK_USER.ADD (#{NAME,mode=IN,jdbcType=VARCHAR}, #{SEX,mode=IN,jdbcType=VARCHAR})}