数据库部分:

--建表

create table test_1(id varchar2(20),name varchar2(20));

--建存储过程

create or replace procedure proc_oracle(businessCode in varchar,name in varchar, str out varchar)

as

begin

insert into test_1(id,name) values(businessCode,name) returning id into str;

end;

--调用存储过程例子

declare

str varchar2(200);

begin

proc_oracle('a','张三',str);

dbms_output.put_line('------'||str);

end;

--查询

select * from test_1;

程序部分:

1.CurdService下面增加两个方法:

/**

* 调用存储过程

* @param map

*/

@Transactional(readOnly = false)

public Map proc(Map map) {

dao.proc(map);

return map;

}

/**

* 调用存储过程

* @param entity

*/

@Transactional(readOnly = false)

public T proc1(T entity) {

dao.proc1(entity);

return entity;

}

2.CurdDao增加

/**

* 调用存储过程

* @param map

* @return

*/

public void proc(Map map);

/**

* 调用存储过程

* @param entity

* @return

*/

public void proc1(T entity);

3.根据代码生成器对应模块下的**Dao.xml(本例子EhrLogDao.xml)中增加调用存储过程代码

<!--proc存储过程-->

<update id="proc" statementType="CALLABLE" parameterType="java.util.Map">

<![CDATA[

{call proc_oracle(#{businessCode,mode=IN,jdbcType=VARCHAR},#{businessName,mode=IN,jdbcType=VARCHAR},#{cardno,mode=OUT,jdbcType=VARCHAR})}

]]>

</update>

<!--proc存储过程-->

<update id="proc1" statementType="CALLABLE" parameterType="EhrLog">

<![CDATA[

{call proc_oracle(#{businessCode,mode=IN,jdbcType=VARCHAR},#{businessName,mode=IN,jdbcType=VARCHAR},#{cardno,mode=OUT,jdbcType=VARCHAR})}

]]>

</update>

4.对应模块下**Service调用(本例子EhrLogService.java)

/**

* 测试存储过程调用

* @param ehrLog

*/

@Transactional(readOnly = false)

public void testProc(EhrLog ehrLog) {

Map map = new HashMap();

map.put("businessName","张三");

map.put("businessCode","1");

map = super.proc(map);

System.out.println("------------"+map.get("cardno").toString());

ehrLog.setBusinessCode("2");

ehrLog.setBusinessName("李四");

ehrLog = super.proc1(ehrLog);

System.out.println("------------"+ehrLog.getCardno());

}

5.对应模块下**Controller(本例子EhrLogController.java)调用,增加调用方法

/**

* 测试存储过程

* @param request

* @param response

* @param model

* @return

*/

@RequestMapping(value = {"testProc", ""})

public void testProc(HttpServletRequest request, HttpServletResponse response, Model model) {

ehrLogService.testProc(new EhrLog());

}

启动程序,登录,输入地址调用http://ip:port/console/a/ehr/log/ehrLog/testProc,观察tomcat控制台输出及数据库表数据变化.


转自:原文链接

[转] mybatis调用存储过程(jeeplus)相关推荐

  1. mybatis调用mysql存储过程_秒会mybatis调用存储过程(MySQL)

    一.简介 有的时候,我们不方便自己写SQL,而是只能调用别人提供的存储过程,那如何使用mybatis调用存储过程呢? 二.示例步骤(MySQL) 2.1 准备一张表 DROP TABLE IF EXI ...

  2. java使用mybatis 调用存储过程返回一个游标结果集

    瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:IBM:Linux on System z Red Hat Enterprise Linux 7 版本:6.0,4.5 文档用途 mybat ...

  3. MyBatis调用存储过程,MyBatis调用函数的使用方法

    MyBatis调用存储过程,MyBatis调用函数的使用方法 一.MyBatis 调用存储过程 1.不带参数的 <select id="batchAnalyzeAll" st ...

  4. mybatis调用存储过程报错The error occurred while setting parameters

    最近项目用mybatis调用存储过程,在使用的过程中出现了一个错误:The error may involve com.stockcommission.dao.CommissionMapper.par ...

  5. mybatis 调用存储过程

    1.定义存储过程 2.调用存储过程 <!-- public void getPageByProcedure(); 1.使用select标签定义调用存储过程2.statementType=&quo ...

  6. Mybatis调用存储过程和函数

    1.现在PL/SQL Developer中定义存储过程和函数 存储过程 create or replace procedure prg_add(p1 in number,p2 in number,p3 ...

  7. mybatis 调用存储过程_你真的该进来了解下MyBatis的SQL工作流程了

    前言 MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程可能并不是所有人都清楚了,那么既然进来了,通读本文你将收获如下: 1.Mapper接口和映射文件是如何进行绑定的 2.MyB ...

  8. mybatis调用 存储过程方法简单demo

    以下是一次简单 的存储过程调用并且在sql中使用行级锁, 本例仅为演示,实际操作请尽量使用spring事务进行管理 Mapper接口类 public interface ???Mapper {publ ...

  9. mybatis调用存储过程

    创建存储过程 create PROCEDURE pro1(in name1 VARCHAR(20),out num INTEGER) BEGIN insert into dept (dname) va ...

最新文章

  1. 后门技术(HOOK篇)之DT_RPATH
  2. protobuf的编译
  3. 51CTO第2本书样章曝光:DHCP服务器规划与应用案例
  4. bzoj1078【SCOI2008】斜堆
  5. python 项目环境包的名称和版本导出和导入
  6. java讲对象放在常量池的方法_java的常量池里面都放了些神马东西
  7. 2021.10.26 Node.js笔记
  8. Xamarin.Form 超链接 用手势实现
  9. R语言基于S3的面向对象编程
  10. Java高并发编程之第一阶段,多线程基础深入浅出
  11. OpenRefine数据清洗实战
  12. 计算机软件方面的基金,天天基金
  13. AntD Selected 多选
  14. input输入效果控制onfocus和onblur事件(转)
  15. 迷途emlog模板全站好看的变色模板源码
  16. 台式计算机用什么电源线,台式机电源怎么选 台式机主机电源如何选择【详解】...
  17. 软件系统三员管理_3个可怕的系统管理员故事
  18. 深交所a股证券代码_深交所股票代码000001
  19. 硬核!百度灵医智惠综合实力业内领先
  20. 服务器RAID 硬盘容量扩展 Extend - Dell

热门文章

  1. 施工机械折旧费计算机,施工机械闲置期间折旧费确定方法的探讨.pdf
  2. C语言栈的用法(创建、入栈、出栈、遍历)
  3. GX Work2 三菱 FX-Q系列IP地址配置
  4. 基于引导滤波的暗通道matlab,基于加权引导滤波的水下图像增强算法
  5. 超详细的张飞硬件第六部电源开关读书笔记01
  6. html页面显示dcm文件,dcm格式的影像 怎么把avi转换为dcm格式?
  7. Python私有变量的用法是什么?
  8. (php毕业设计)基于php的企业网站管理系统源码
  9. 【C语言程序设计】求自然底数e,求自然对数的底e!
  10. 谷歌Colab(免费算力平台)——正确打开方式(常用操作指导tips)