mybatis中如何调用oracle存储过程
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,今天就跟大家聊聊有关mybatis中如何调用oracle存储过程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.无输入和输出参数的存储过程我
千家信息网最后更新 2025年12月04日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文件时 写的返回结果名 List list = (List)map.get("result"); return list; 看完上述内容,你们对mybatis中如何调用oracle存储过程有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
过程
存储
内容
文件
标签
游标
结果
输出
代码
写法
参数
命令
时候
语句
输入
不同
复杂
着急
原作
原作者
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器tcp最大连接数
浙江专业服务器厂家直供
waf防火墙数据库安全吗
农行软件开发中心笔试题目
数据库的技术方法
台式电脑错误代码代理服务器问题
厦门速去拼互联网科技
代理服务器c
数据库完整事务体系
辣苹果网络技术
制定网络安全审查目标
数据库等着干什么用的
河北数据库应用技术
黑龙江服务器电源公司有哪些
艺术图片素材软件开发
多线程读写数据库
网络安全和通讯保障
计算机网络技术这个专业咋样
网络安全实验室要素
嘉定区口碑好的软件开发代理品牌
计算机网络技术买什么u盘
从事网络安全工作的工资
数据库管理结课论文
茉莉x4刀片服务器声音多大视频
电脑关机数据库未退出
2021网络安全宣传周答题题库
承德诚信网络技术服务
sphinx是数据库么
网络安全宣传问卷
数据库查询面试