栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java的MybatisPlus调用储存过程的返回数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java的MybatisPlus调用储存过程的返回数据

java的MybatisPlus调用储存过程的返回数据

1、调用存储过程

  • 核心 statementType=”CALLABLE”

mybatis调用存储过程时需要指定statementType=”CALLABLE”,
这样Mybatis内部中调用sql语句时将采用CallableStatementHandler,
而CallableStatementHandler内部将使用CallableStatement来调用存储过程。

如果存储过程是有参数的,需要指定mode属性,可选值有IN、OUT和INOUT。当mode为OUT或INOUT时必须同时指定jdbcType。如


    {call findName(
        #{name, mode=IN, jdbcType=VARCHAR},
        #{email, mode=OUT, jdbcType=VARCHAR}
    )}
   

或者

注意的问题:
每个#{}之间不能分行写,因为翻译过来会有空格,会报错。最好写在一行吧,免得麻烦,就是不好看而已。


    

2:测试调用,或者postman 请求,传递参数map

存储过程调用完成后会把输出参数赋值给入参,所以我们可以通过Map或实体类来接收输出参数,比如这里的name。所以针对上述存储过程调用,我们可以在Mapper接口中定义如下方法:

测试

        @Test	
	public void  callStatement() {
		Map map = new HashMap();
		map.put("name", "zxn");
		try {
			userEmailMapper.findName(map);
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println(“execute=”+map.get("email"));
	}
    void findName(Map params);

3:存储过程示例

DROP PROCEDURE IF EXISTS findName;      //如果存储过程存在,先删除掉存储过程
CREATE PROCEDURE findName(IN `name` varchar(200),OUT `email_address` varchar(255)),
SELECT `a`.`email` INTO email from user a WHERe `a`.`name`=`name`;	
END

4:验证结果,输出查询出来的信息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/606119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号