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

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值