java项目实现简单的oracle存储过程

本文介绍如何在Java项目中通过DAO层调用Oracle存储过程实现数据插入操作。使用MyBatis框架配置存储过程,并通过控制台接收参数,将值封装到Map中进行传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java项目实现简单的存储过程,这里dao,service,控制层,代码不用变,配置也不用变(新手上路,就简单的实现了一个添加操作)

存储过程 源码附上:(最简单的那种,没有返回类型),oracle库表前提是要有的,

create or replace procedure setemp(
v_empno emp.empno%type,
v_ename emp.ename%type,
v_job emp.job%type,
v_mgr emp.mgr%type,
v_hiredate emp.hiredate%type,
v_sal emp.sal%type,
v_comm emp.comm%type,
v_deptno emp.deptno%type

 is
 begin
 insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(v_empno,v_ename,v_job,v_mgr,v_hiredate,v_sal,v_comm,v_deptno);
 end setemp;

第二步只要更改dao的映射文件中的sql语句修改, 我在控制台接受的时候用@requestparam 把值封装到了Map<String,Object> map 中了,所以下面的parameter是map类型,源码附上:

<insert id="saveEmp" statementType="CALLABLE" parameterType="map">
<![CDATA[ 
call setemp(#{empNo,jdbcType=INTEGER,mode=IN},#{eName,jdbcType=VARCHAR,mode=IN},#{job,jdbcType=VARCHAR,mode=IN},#{mgr,jdbcType=INTEGER,mode=IN},to_date(#{hireDate,mode=IN},'yyyy-MM-dd'),#{sal,jdbcType=INTEGER,mode=IN},#{comm,jdbcType=INTEGER,mode=IN},#{deptNo,jdbcType=INTEGER,mode=IN})
]]>   
</insert>

切记:有些地方的代码是  <![CDATA[  { call .........}  ]]>  细心的能发现这和我上面的相比加了{}  在call  外面,这样我测试过是不可以的,  测试多次发现

 <![CDATA[  ]]>   和  {  }  只存在就可以,意思把上面代码也可以为{ call setemp(#{empNo,jdbcType=INTEGER,mode=IN},#{eName,jdbcType=VARCHAR,mode=IN},#{job,jdbcType=VARCHAR,mode=IN},#{mgr,jdbcType=INTEGER,mode=IN},to_date(#{hireDate,mode=IN},'yyyy-MM-dd'),#{sal,jdbcType=INTEGER,mode=IN},#{comm,jdbcType=INTEGER,mode=IN},#{deptNo,jdbcType=INTEGER,mode=IN}) }  这两种都是没问题的

望大家指教!

 

相当不错的技术文档。 前言 1 第一章 oracle存储过程概述 2 1.1 存储过程基本结构(PROCEDURE) 3 1.1.1创建存储过程 3 1.1.2 存储过程删除 5 1.1.3 调用存储过程 5 1.2存储函数(FUNCTIONE) 6 1.2.1 创建存储函数 6 1.2.2 删除存储函数 7 1.3 包(package) 7 1.3.1 包的基本结构 7 1.3.2 包的创建 7 1.3.3 调用包中元素 9 1.3.4 包的修改和删除 9 第二章 oracle存储过程基础――PL/SQL 9 2.1 pl/sql基础 9 2.1.1 PL/SQL简介 9 2.1.2 一个简单的PL/SQL块 10 2.1.3 PL/SQL流程控制 13 2.2 游标(CURSOR) 17 2.2.1 游标的概念 18 2.2.2 游标的属性 18 2.2.3 游标中FOR循环的使用 20 2.2.4 带参数游标的使用方法 20 2.3 动态SQL语句 21 2.4 例外处理 22 2.5 一个完整的PL/SQL实例 24 第三章 oracle存储过程讨论 25 3.1 函数(FUNCTION) 26 3.1.1 用户函数创建,编译,删除 26 3.1.2 参数传递 27 3.2 存储过程 28 3.3 包 29 3.3.1 创建包 30 3.3.2 删除包 30 3.3.3 应用举例 31 3.4 UTL_FILE包的使用 33 3.4.1 文件控制: 34 3.4.2 文件输出: 34 3.4.3 文件输: 35 3.4.4 应用举例 35 4.1 Wrapper应用 35 第四章 存储过程运行环境 36 4.1 存储过程以及PL/SQL执行环境 36 4.1.1 SQL*PLUS环境 36 4.1.2 Pro*c预编译环境 37 4.2 存储过程调试方法 38 4.2.1 SQL*PLUS环境中显示错误 38 4.2.2 插测试表调试存储过程 38 4.2.3 DBMS_OUTPUT系统内置包 39 附录一 sql*plus工具 40 附录1.1 sql*plus启动和关闭 41 附录1.2 sql*plus 环境设置 42 附录1.3 设置环境参数 42 附录1.4 sqlplus命令的执行 43 附录1.5 sql*plus编辑命令 43
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值