失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql的映射文件调用函数_MyBatis中调用存储过程和函数

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

时间:2019-02-09 04:07:41

相关推荐

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 "-////DTD Mapper 3.0//EN"

"/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 "-////DTD Config 3.0//EN"

"/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中调用存储过程和函数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。