mybatis中如何调用oracle存储过程
发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,今天就跟大家聊聊有关mybatis中如何调用oracle存储过程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.无输入和输出参数的存储过程我
千家信息网最后更新 2025年02月13日mybatis中如何调用oracle存储过程
今天就跟大家聊聊有关mybatis中如何调用oracle存储过程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1.无输入和输出参数的存储过程
我写了一个比较简单的,需要注意的是Oracle无参存储过程不能写括号
CREATE OR REPLACE Procedure cascadeoperationAsBegin Delete From teacher Where id=1; Update studentdetail Set address='宁波市海曙区' Where studentid=10;End;
这里执行了2个操作,可能用过mybatis的人会迷惑执行的时候到底使用update标签呢还是delete标签,其实都行,我也试过select标签也是OK的,下面是部分的配置文件
{call cascadeoperation}
2.带有输入和输出参数的存储过程
,我这里加入了if else的几个判断
CREATE OR REPLACE Procedure queryTeacher(fid In Integer,Type In Varchar,Name Out Varchar)AsBeginIf Type='1' thenSelect Name Into Name From student Where id=fid;Else if Type='2' ThenSelect Name Into Name From teacher Where id=fid;Else Name:='错误';End If;End If;End;
下面顺便把我在命令行窗口执行的存储过程语句贴出来
DeclareName Varchar2(50);Beginqueryteacher(3,'2',Name);DBMS_OUTPUT.put_line(Name);End;/
执行过类似语句的时候可能看不到任何的输出,不要着急只需在命令行使用set serveroutput on;
看到结果了吧,下面使用mybatis来执行这个存储过程,下面是映射文件的写法
那怎么取得返回的内容呢,其实只要存储过程执行后map里就有值了,java代码大致如下
Mapmm=new HashMap (); mm.put("fid", 3); mm.put("type", 2); m.queryTeacher(mm); System.out.println(mm.get("name"));
存3.返回游标的存储过程
还有一种存储过程,它可以返回一个游标就类似一个集合这种
CREATE OR REPLACE Procedure getTeacher(cur_arg out Sys_Refcursor)Asbegin open cur_arg for Select * From teacher;End;
这种情况,在mybatis里就稍微有些不同了,此时jdbcType就是CURSOR,javaType则是ResultSet了,这里还可以把结果转成resultMap了,如下所示
这里的话Java代码就稍微复杂一些
Mapmap = new HashMap (); m.getAllTeacher(map); Set > set = map.entrySet(); for (Iterator > it = set.iterator(); it .hasNext();) { Map.Entry entry = (Map.Entry ) it .next(); // System.out.println(entry.getKey() + "--->" + // (Teacher)entry.getValue()); List t = (List ) entry.getValue(); Iterator itera = t.iterator(); while (itera.hasNext()) { Teacher tt = itera.next(); System.out.println(tt.getName() + "," + tt.getAddress()); } }
返回游标 可以直接用下面的方法 上面原作者的写法 太麻烦了
Map map = new HashMap(); map.put("jid", jid); userInfoMapper.getFriendList(map); //result 为在mybatis xml文件时 写的返回结果名 Listlist = (List )map.get("result"); return list;
看完上述内容,你们对mybatis中如何调用oracle存储过程有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
过程
存储
内容
文件
标签
游标
结果
输出
代码
写法
参数
命令
时候
语句
输入
不同
复杂
着急
原作
原作者
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
崇明区银联数据库服务成本
dhcp服务器能管理
服务器管理需要注意什么
杭州app软件开发定制费用
郑州web前端软件开发价钱
千千静听软件开发周期
我的世界最先进的红石服务器
数据库远程备份工具
软件开发商认证
南宁青柚网络技术服务工作室
软件开发rpu全称
5g网络技术难点是什么
济南工业控制软件开发
ftp服务器搭建2003
fivem服务器管理员代码
南川区网络安全审计系统咨询
数据库要下什么软件
西哈努克城做软件开发
山东滕纳网络技术有限公司
公需课中书目数据库有哪些
昆明国企软件开发
物管软件开发之我谈
聚光科技软件开发怎么样
科技app软件开发公司电话
密云区信息网络技术推广怎么样
平台的数据库设计
营销商城软件开发
mac软件开发内存要求
豫苗通为什么显示服务器错误
数据中心服务器托管服务及网络宽带服务