mysql的映射文件调用函数_MyBatis中调用存储过程和函数
一.调用存储过程
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中调用存储过程和函数相关推荐
- Xlua文件在热更新中调用方法
Xlua文件在热更新中调用方法 public class news : MonoBehaviour { LuaEnv luaEnv;//定义Lua初始变量 void Awake() { luaEnv ...
- python transpose函数_numpy中transpose和swapaxes函数讲解
1 transpose() 这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数. 我们看如下一个numpy的数组: arr=np.arange(16).reshape( ...
- 第15章_存储过程与函数(创建存储过程、调用存储过程、存储函数的使用、存储过程和函数的查看、修改、删除)
第15章_存储过程与函数 第15章_存储过程与函数 1. 存储过程概述 1.1 理解 1.2 分类 2. 创建存储过程 2.1 语法分析 2.2 代码举例 3. 调用存储过程 3.1 调用格式 3.2 ...
- 删除数据库中所有存储过程和函数的sql语句
-删除数据库中所有存储过程和函数的sql语句 USE [TmpDb] SELECT IDENTITY( INT,1,1 ) flag , [name] NAMES,xtype INT ...
- html中text函数,text函数 excel中如何使用text函数
如果我们需要将期数和日期进行合并的话,就需要用到这test函数.当然有许多人对着一个函数,肯定是第一次看到,自然也不知道这一个函数的具体使用方法.而今天我们要了解的内容就是这一个函数的具体使用方法. ...
- dll放在unity哪个文件夹下_unity中调用dll文件总结
unity中调用dll文件总结 根据收集的资料,对unity中调用dll文件进行总结,目前常用的两种,在给出vs中封装dll文件的步骤. 一.调用c#中的dll文件 1.1封装dll文件 首先新建一个 ...
- length函数的头文件_Framebuffer 应用编程中涉及的 API 函数
本节程序的目的是:打开 LCD 设备节点,获取分辨率等参数,映射 Framebuffer,最后实现描点函数. 5.2.1 open 函数 在 Ubuntu 中执行"man 2 open&qu ...
- java 调用matlab函数_java中调用Matlab的函数+注意事项
一.matlab版本必须支持java 在command 模式下面运行deploytool,如果支持该命令即可使用 二.matlab中function的书写 %定义一个函数operation(a,b), ...
- Python全栈(五)Web安全攻防之7.MySQL注入读写文件和HTTP头中的SQL注入
文章目录 一.MySQL注入读写文件 1.搭建新的测试环境(靶场) 2.读写文件概述 3.读取文件 4.写入文件 二.HTTP头中的SQL注入 1.HTTP头中的SQL注入介绍 updatexml函数 ...
最新文章
- 别再写满屏的try-catch了,真丑,全局异常处理不会吗?
- LeetCode:Permutations II
- Python--day7--面向对象编程进阶
- python深度爬虫_总结:常用的 Python 爬虫技巧
- charles代理手机调试_Mac 上使用 Charles 进行手机抓包调试
- 跳转到_301跳转常见问题汇总
- [软技能] png-8和png-24有什么区别?
- Jquery遮罩插件,想罩哪就罩哪!
- Linux内核学习(一)编译内核并运行一个最小系统
- 上市公司频推高送转 年报预告掘金“白马股”(名单)
- 【习题 4-7 UVA - 509】RAID!
- 第39级台阶(递归+dp)
- 接口试验。设计立体图形接口,包括计算表面积和体积的方法;设计圆柱体类和圆锥体类,分别实现立体图形接口,计算表面积和体积。
- 流式数据、批式数据、实时数据、历史数据的区别
- ORA-01654错误:表空间满了,插入失败
- linux加速访问github
- 电商项目_ads层建设
- 南阳百里奚计算机学校,南阳之子 百里奚
- .bin 文件用excel文件打开_如何用最少的python代码合并多个Excel文件
- 东原地产首获“蓝筹地产” 千亿货值业绩增速成亮点