一.调用存储过程

1.首先在数据库中定义存储过程,定义的存储过程的代码如下:

//定义存储过程

create or replace procedure pag_add(p1 varchar2,p2 varchar2,p3 out varchar2)

as

begin

p3:=p1+p2;

end;

//定义函数

create or replace function fun_add(p1 number ,p2 number)

return number

as

begin

return p1+p2;

end;

2.通过接口映射Sql,定义接口

package cn.et.mybatis.lesson02.func;

import java.util.List;

import java.util.Map;

public interface CallMapper {

// public void queryEmp(Map map);

//查询存储过程的方法

public void callProcedure(Map map);

//查询函数的方法

public void callFunction(Map map);

}

3.定义映射文件

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

{

call pag_add(

#{p1,mode=IN,jdbcType=NUMERIC},

#{p2,mode=IN,jdbcType=NUMERIC},

#{p3,mode=OUT,jdbcType=NUMERIC}

)

}

{

call prg_add(

#{p1,mode=IN,jdbcType=NUMERIC},

#{p2,mode=IN,jdbcType=NUMERIC},

#{p3,mode=OUT,jdbcType=NUMERIC}

)

}

{

#{p3,mode=OUT,jdbcType=NUMERIC}=call fun_add(

#{p1,mode=IN,jdbcType=NUMERIC},

#{p2,mode=IN,jdbcType=NUMERIC}

)

}

4.定义主mybaits.xml文件

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

5.定义测试类

package cn.et.mybatis.lesson02.func;

import java.io.IOException;

import java.io.InputStream;

import java.util.HashMap;

import java.util.Map;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Test;

public class TestMyBatis {

//封装session的返回

public static SqlSession getSession(){

String resource = "/cn/et/mybatis/lesson02/mybatis.xml";

InputStream inputStream =TestMyBatis.class.getResourceAsStream(resource);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//操作数据库的类 SqlSession

SqlSession session=sqlSessionFactory.openSession();

return session;

}

//调用存储过程

public static void main(String[] args) throws IOException {

SqlSession session=getSession();

CallMapper cm=session.getMapper(CallMapper.class);

Map map=new HashMap();

map.put("p1", 100);

map.put("p2", 200);

cm.callProcedure(map);

System.out.println(map.get("p3"));

}

@Test

//调用函数

public void funTest(){

SqlSession session=getSession();

CallMapper cm=session.getMapper(CallMapper.class);

Map map=new HashMap();

map.put("p1", 100);

map.put("p2", 400);

cm.callFunction(map);

System.out.println(map.get("p3"));

}

}

以上为存储过程和函数的调用

//查询函数的方法public void callFunction(Map map);

mysql的映射文件调用函数_MyBatis中调用存储过程和函数相关推荐

  1. Xlua文件在热更新中调用方法

    Xlua文件在热更新中调用方法 public class news : MonoBehaviour { LuaEnv luaEnv;//定义Lua初始变量 void Awake() { luaEnv ...

  2. python transpose函数_numpy中transpose和swapaxes函数讲解

    1 transpose() 这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数. 我们看如下一个numpy的数组: arr=np.arange(16).reshape( ...

  3. 第15章_存储过程与函数(创建存储过程、调用存储过程、存储函数的使用、存储过程和函数的查看、修改、删除)

    第15章_存储过程与函数 第15章_存储过程与函数 1. 存储过程概述 1.1 理解 1.2 分类 2. 创建存储过程 2.1 语法分析 2.2 代码举例 3. 调用存储过程 3.1 调用格式 3.2 ...

  4. 删除数据库中所有存储过程和函数的sql语句

    -删除数据库中所有存储过程和函数的sql语句 USE [TmpDb] SELECT  IDENTITY( INT,1,1 ) flag ,         [name] NAMES,xtype INT ...

  5. html中text函数,text函数 excel中如何使用text函数

    如果我们需要将期数和日期进行合并的话,就需要用到这test函数.当然有许多人对着一个函数,肯定是第一次看到,自然也不知道这一个函数的具体使用方法.而今天我们要了解的内容就是这一个函数的具体使用方法. ...

  6. dll放在unity哪个文件夹下_unity中调用dll文件总结

    unity中调用dll文件总结 根据收集的资料,对unity中调用dll文件进行总结,目前常用的两种,在给出vs中封装dll文件的步骤. 一.调用c#中的dll文件 1.1封装dll文件 首先新建一个 ...

  7. length函数的头文件_Framebuffer 应用编程中涉及的 API 函数

    本节程序的目的是:打开 LCD 设备节点,获取分辨率等参数,映射 Framebuffer,最后实现描点函数. 5.2.1 open 函数 在 Ubuntu 中执行"man 2 open&qu ...

  8. java 调用matlab函数_java中调用Matlab的函数+注意事项

    一.matlab版本必须支持java 在command 模式下面运行deploytool,如果支持该命令即可使用 二.matlab中function的书写 %定义一个函数operation(a,b), ...

  9. Python全栈(五)Web安全攻防之7.MySQL注入读写文件和HTTP头中的SQL注入

    文章目录 一.MySQL注入读写文件 1.搭建新的测试环境(靶场) 2.读写文件概述 3.读取文件 4.写入文件 二.HTTP头中的SQL注入 1.HTTP头中的SQL注入介绍 updatexml函数 ...

最新文章

  1. 别再写满屏的try-catch了,真丑,全局异常处理不会吗?
  2. LeetCode:Permutations II
  3. Python--day7--面向对象编程进阶
  4. python深度爬虫_总结:常用的 Python 爬虫技巧
  5. charles代理手机调试_Mac 上使用 Charles 进行手机抓包调试
  6. 跳转到_301跳转常见问题汇总
  7. [软技能] png-8和png-24有什么区别?
  8. Jquery遮罩插件,想罩哪就罩哪!
  9. Linux内核学习(一)编译内核并运行一个最小系统
  10. 上市公司频推高送转 年报预告掘金“白马股”(名单)
  11. 【习题 4-7 UVA - 509】RAID!
  12. 第39级台阶(递归+dp)
  13. 接口试验。设计立体图形接口,包括计算表面积和体积的方法;设计圆柱体类和圆锥体类,分别实现立体图形接口,计算表面积和体积。
  14. 流式数据、批式数据、实时数据、历史数据的区别
  15. ORA-01654错误:表空间满了,插入失败
  16. linux加速访问github
  17. 电商项目_ads层建设
  18. 南阳百里奚计算机学校,南阳之子 百里奚
  19. .bin 文件用excel文件打开_如何用最少的python代码合并多个Excel文件
  20. 东原地产首获“蓝筹地产” 千亿货值业绩增速成亮点

热门文章

  1. bash脚本编程之一 变量、变量类型等
  2. 游戏设计中的算法题——计算宝物升级所需的资源数
  3. Java 编程下 Eclipse 如何设置单行代码显示的最大宽度
  4. 使用RMAN备份控制文件(control file)和系统参数文件(spfile)
  5. 别指望在NativeWindow里添加Flex组件
  6. Linux学习日记:第二天
  7. 2440按键中断编程
  8. 视图view的生命周期的一点见解
  9. 解决引入 lombok 注解不生效
  10. weh shell高大上?一文教你实现