[转] mybatis调用存储过程(jeeplus)
数据库部分:
--建表
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)相关推荐
- mybatis调用mysql存储过程_秒会mybatis调用存储过程(MySQL)
一.简介 有的时候,我们不方便自己写SQL,而是只能调用别人提供的存储过程,那如何使用mybatis调用存储过程呢? 二.示例步骤(MySQL) 2.1 准备一张表 DROP TABLE IF EXI ...
- java使用mybatis 调用存储过程返回一个游标结果集
瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:IBM:Linux on System z Red Hat Enterprise Linux 7 版本:6.0,4.5 文档用途 mybat ...
- MyBatis调用存储过程,MyBatis调用函数的使用方法
MyBatis调用存储过程,MyBatis调用函数的使用方法 一.MyBatis 调用存储过程 1.不带参数的 <select id="batchAnalyzeAll" st ...
- mybatis调用存储过程报错The error occurred while setting parameters
最近项目用mybatis调用存储过程,在使用的过程中出现了一个错误:The error may involve com.stockcommission.dao.CommissionMapper.par ...
- mybatis 调用存储过程
1.定义存储过程 2.调用存储过程 <!-- public void getPageByProcedure(); 1.使用select标签定义调用存储过程2.statementType=&quo ...
- Mybatis调用存储过程和函数
1.现在PL/SQL Developer中定义存储过程和函数 存储过程 create or replace procedure prg_add(p1 in number,p2 in number,p3 ...
- mybatis 调用存储过程_你真的该进来了解下MyBatis的SQL工作流程了
前言 MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程可能并不是所有人都清楚了,那么既然进来了,通读本文你将收获如下: 1.Mapper接口和映射文件是如何进行绑定的 2.MyB ...
- mybatis调用 存储过程方法简单demo
以下是一次简单 的存储过程调用并且在sql中使用行级锁, 本例仅为演示,实际操作请尽量使用spring事务进行管理 Mapper接口类 public interface ???Mapper {publ ...
- mybatis调用存储过程
创建存储过程 create PROCEDURE pro1(in name1 VARCHAR(20),out num INTEGER) BEGIN insert into dept (dname) va ...
最新文章
- 后门技术(HOOK篇)之DT_RPATH
- protobuf的编译
- 51CTO第2本书样章曝光:DHCP服务器规划与应用案例
- bzoj1078【SCOI2008】斜堆
- python 项目环境包的名称和版本导出和导入
- java讲对象放在常量池的方法_java的常量池里面都放了些神马东西
- 2021.10.26 Node.js笔记
- Xamarin.Form 超链接 用手势实现
- R语言基于S3的面向对象编程
- Java高并发编程之第一阶段,多线程基础深入浅出
- OpenRefine数据清洗实战
- 计算机软件方面的基金,天天基金
- AntD Selected 多选
- input输入效果控制onfocus和onblur事件(转)
- 迷途emlog模板全站好看的变色模板源码
- 台式计算机用什么电源线,台式机电源怎么选 台式机主机电源如何选择【详解】...
- 软件系统三员管理_3个可怕的系统管理员故事
- 深交所a股证券代码_深交所股票代码000001
- 硬核!百度灵医智惠综合实力业内领先
- 服务器RAID 硬盘容量扩展 Extend - Dell
热门文章
- 施工机械折旧费计算机,施工机械闲置期间折旧费确定方法的探讨.pdf
- C语言栈的用法(创建、入栈、出栈、遍历)
- GX Work2 三菱 FX-Q系列IP地址配置
- 基于引导滤波的暗通道matlab,基于加权引导滤波的水下图像增强算法
- 超详细的张飞硬件第六部电源开关读书笔记01
- html页面显示dcm文件,dcm格式的影像 怎么把avi转换为dcm格式?
- Python私有变量的用法是什么?
- (php毕业设计)基于php的企业网站管理系统源码
- 【C语言程序设计】求自然底数e,求自然对数的底e!
- 谷歌Colab(免费算力平台)——正确打开方式(常用操作指导tips)