1、现在PL/SQL Developer中定义存储过程和函数

存储过程

create or replace procedure prg_add(p1 in number,p2 in number,p3 out number)
as
beginp3:=p1+p2;
end;

函数

create or replace function fun_add(p1 in number,p2 in number)
return number
as
beginreturn p1+p2;
end;

2、mybatis-config.xml内容:核心配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- mybatis的核心配置文件1.数据库的连接的信息(连接池)--><properties resource="oracle.properties"></properties><!-- 取别名 --><typeAliases><typeAlias type="cn.easytop.lesson02.Food" alias="food"/></typeAliases><environments default="development"><environment id="development"><!-- 事务管理器  默认使用jdbc事务 --><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driverClass}"/><property name="url" value="${url}"/><property name="username" value="${username1}"/><property name="password" value="${password}"/></dataSource></environment></environments><mappers><mapper resource="cn/easytop/lesson02/proc/ProcMapper.xml"/></mappers></configuration>

3、定义存储过程和函数

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- jdbc调用存储过程 {call 存储过程名(?,?)}函数{?=call 函数名(?,?)}
-->
<mapper namespace="cn.easytop.lesson02.xml.FoodMapper"><!-- 存储过程注意:statementType="CALLABLE" 必须要声明的类型--><select id="call_prg_add" resultType="java.util.Map" statementType="CALLABLE">{call prg_add(#{p1,mode=IN,jdbcType=NUMERIC},#{p2,mode=IN,jdbcType=NUMERIC},#{result,mode=OUT,jdbcType=NUMERIC})}</select><!-- 函数resultType="java.util.Map"  返回的结果类型注意:statementType="CALLABLE" 必须要声明的类型--><select id="call_fun_add" resultType="java.util.Map" statementType="CALLABLE">{#{result,mode=OUT,jdbcType=NUMERIC}=call fun_add(#{p1,mode=IN,jdbcType=NUMERIC},#{p2,mode=IN,jdbcType=NUMERIC})}</select>
</mapper>

4、测试类

package cn.easytop.lesson02.proc;import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class TestProc {public static SqlSession getSession() throws IOException{String resource = "cn/easytop/lesson02/proc/mybatis.xml";InputStream inputStream = Resources.getResourceAsStream(resource);//工厂类SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession = sqlSessionFactory.openSession();//session操作的是 指向sql语句的一个唯一表示符return openSession;}//调用存储过程@org.junit.Testpublic void testXmlInterface() throws IOException{SqlSession session=getSession();Map map=new HashMap();map.put("p1",1111);map.put("p2", 1212);//直接返回到map集合中String result=session.selectOne("call_prg_add",map);System.out.println(map.get("result"));}//调用函数@org.junit.Testpublic void testFunInterface() throws IOException{SqlSession session=getSession();Map map=new HashMap();map.put("p1",1111);map.put("p2", 1212);String result=session.selectOne("call_fun_add",map);//直接返回到map集合中System.out.println(map.get("result"));}
}

Mybatis调用存储过程和函数相关推荐

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

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

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

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

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

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

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

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

  5. mysql函数如何调用过程_MySQL调用存储过程和函数

    存储过程和存储函数都是存储在服务器端的 sql 语句集合.要想使用这些已经定义好的存储过程和存储函数就必须要通过调用的方式来实现. 存储过程通过 CALL 语句来调用,存储函数的使用方法与 MysqL ...

  6. MyBatis中调用存储过程和函数

    一.调用存储过程 1.首先在数据库中定义存储过程,定义的存储过程的代码如下: //定义存储过程create or replace procedure pag_add(p1 varchar2,p2 va ...

  7. mysql的映射文件调用函数_MyBatis中调用存储过程和函数

    一.调用存储过程 1.首先在数据库中定义存储过程,定义的存储过程的代码如下: //定义存储过程 create or replace procedure pag_add(p1 varchar2,p2 v ...

  8. 7、调用存储过程和函数

    存储过程和存储函数都是存储在服务器端的 SQL 语句集合.要想使用这些已经定义好的存储过程和存储函数就必须要通过调用的方式来实现. 存储过程通过 CALL 语句来调用, 存储函数的使用方法与 MySQ ...

  9. JDBC第二篇 【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】...

    tags: JDBC 1.PreparedStatement对象 PreparedStatement对象继承Statement对象,它比Statement对象更强大,使用起来更简单 Statement ...

最新文章

  1. 提升淘宝排名的27个因素
  2. 如何创建高质量的TypeScript声明文件(五) - 示例
  3. 零基础学Python(第二章 中文编码)
  4. (转到C区)[献给想深入学习网络编程的朋友] C,C++网络编程学习简明指南
  5. 机械史上最复杂的巅峰之作,这才是最强大脑!
  6. DataTables获取指定元素的行数据
  7. 中国民企老板要牢记的四句话
  8. OpenCV--罗德里格斯(Rodrigues)变换
  9. 如何在面试中介绍自己的项目经验?
  10. __attribute__((visibility()))
  11. 命令行开启一个unity实例和执行其中的脚本方法的使用和注意
  12. python实现冒泡排序视频_Python实现冒泡排序
  13. python中常用的os模块
  14. gsm模块 java 录音_深入详解Android GSM驱动模块
  15. Windows 下Redis客户端可视化工具-Redis Desktop Manager
  16. java海康摄像头添加人脸_java调用海康人脸识别机5603的sdk的使用总结(二)
  17. PDF怎么转换成JPG图片?教你如何快速转换
  18. 华为员工频繁自杀原因何在?
  19. Ubuntu 桌面美化教程
  20. bootstrap切换tab页局部刷新_Rails 用 RJS 简单有效的实现页面局部刷新

热门文章

  1. 饮料如何畅销市场?看农夫山泉如何玩转营销
  2. 戴尔微型计算机进bois,dell进bios按什么键 戴尔进bios的方法
  3. 手机免流开热点教程(ROOT版)
  4. iOS访问 self-signed(自签名) HTTPS
  5. c语言注释符号 井号,读c语言深度剖析 -- 符号 注释符号
  6. wpf拖拽图片,滚轮放大缩小
  7. 虚拟机CentOS7启动报错:Entering emergency mode
  8. CSDN写博客出现浏览器“不支持隐私模式,需用普通模式访问”处理
  9. uniapp 微信云开发静态网站和云函数跳转小程序
  10. 如何为SharePoint文档库、文件夹、文件单独设置权限