step1:在mysql cmd中新建存储过程:

drop procedure if exists queryCountByGrade ;

delimiter // -- 定义存储过程结束符号为//
create procedure queryCountByGrade(IN gradenameinput INT(),OUT counts int()
begin
select count(*) into counts from student where grade = gradenameinput;end // delimiter ; --重新定义存储过程的结束符号是分号

step2:编写StudentMapper.xml文件

<!-- 通过mybatis调用存储过程procedure,来实现查询功能  ,statementType="CALLABLE" -->
<select id="queryCountByGradeWithProcedure" statementType="CALLABLE" parameterType="HashMap">
CALL queryCountByGrade( #{gradenameinput,mode=IN,jdbcType=VARCHAR}, #{counts,mode=OUT,jdbcType=INTEGER}
                //queryCountByGrade:就是mysql存储过程名称
) </select>

step3:编写StudentManager.java 接口文件

//使用存储过程实现查询的操作
void queryCountByGradeWithProcedure(Map<String,Object> mapp);

step4:测试函数

/**
* 使用存储过程实现数量的查询,某个年级的人数
* @param args
* @throws IOException
*/
/**
* 带转换器
* @throws IOException
*/
public static void throughProcedureToQueryCountByGradeName() throws IOException
{
Reader reader = Resources.getResourceAsReader("conf.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession();//就是session名字即可 StudentManager studentManager = session.getMapper(StudentManager.class); Map<String ,Object>mapp = new HashMap();//通过Map给存储过程,指定输入参数gradenameinput
         //gradenameinput和counts都是mysql中存储过程定义时候的,名称,跟CALL queryCountByGrade(#{},#{})里的是一致的
mapp.put("gradenameinput", 5);//指定存储过程的出入参数gradenameinput,是5 studentManager.queryCountByGradeWithProcedure(mapp);//调用存储过程 Object obj = mapp.get("counts");//获取存储过程的输出参数:counts System.out.println(obj);
session.close(); }//queryonestudentwithconverser()

  

mybatis调用mysql的存储过程(procedure),实现查询操作(student表中的某个年级中的总人数 select (1) 或者 select (*))的更多相关文章

  1. Mybatis调用数据库的存储过程和方法

     转载. https://blog.csdn.net/ml0228123/article/details/81002258   上次的项目,要求我用java代码调用存储过程,折腾了好久.最后总算成功了 ...

  2. shell脚本 如何调用Mysql的存储过程 解决方案

    今天遇到一个在shell脚本里面要调用MySQL的存储过程,查阅了很多资料,发现有的都不好用,自己调试出了如下一种,拿来共享: 用mysql -e “ ”: 例如:   mysql -uroot -p ...

  3. java 调用mysql的存储过程(简单示例)

    首先我在mysql的test数据库里定义了一个student表: create table student4( id   int   primary key, sanme char(5) ); 插入几 ...

  4. MySQL使用存储过程代替子查询

    摘要: 出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该 ...

  5. mysql / pgsql 使用sql语句查询数据库所有表注释已经表字段注释

    mysql使用sql语句查询数据库所有表注释已经表字段注释(转载)   场景: 1. 要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammo ...

  6. MySQL快速回顾:高级查询操作

    8.1 排序数据 检索出的数据并不是以纯粹的随机顺序显示的.如果不排序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到M ...

  7. 数据库Mysql的学习(六)-子查询和多表操作

    )*0.05 WHERE card_id ='20121xxxxxx'; //子查询就是一个嵌套先计算子查询 SELECT * FROM borrow WHERE book_id =(SELECT b ...

  8. MySQL--详细查询操作(单表记录查询、多表记录查询(连表查询)、子查询)

    一.单表查询 1.完整的语法顺序(可以不写完整,其次顺序要对) (不分组,且当前表使用聚合函数: 当前表为一组,显示统计结果 ) select distinct [*,查询字段1,查询字段2,表达式, ...

  9. java, mybatis, 调用mysql存储过程

    Map<String, Object> bindinfo = new HashMap<String, Object>();            bindinfo.put(&q ...

随机推荐

  1. Tomcat基本知识(一)

    顶层架构先上一张Tomcat的顶层结构图(图A),如下: Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务 ...

  2. PMP(第六版)中的各种矩阵表格

  3. Java获取文件中视频的时长

    public void ReadVideoTime(String path) { long sum = 0; long num = 0; File source = new File(path[i]) ...

  4. [Abp vNext 源码分析] - 12. 后台作业与后台工作者

    一.简要说明 文章信息: 基于的 ABP vNext 版本:1.0.0 创作日期:2019 年 10 月 24 日晚 更新日期:暂无 ABP vNext 提供了后台工作者和后台作业的支持,基本实现与原 ...

  5. shell数组(四)

    [root@ipha-dev71- exercise_shell]# cat test.sh #!/bin/bash my_array=(a b c d) echo "第一个元素为:${my ...

  6. Shiro权限管理框架(四):深入分析Shiro中的Session管理

    其实关于Shiro的一些学习笔记很早就该写了,因为懒癌和拖延症晚期一直没有落实,直到今天公司的一个项目碰到了在集群环境的单点登录频繁掉线的问题,为了解决这个问题,Shiro相关的文档和教程没少翻.最后 ...

  7. CCBPM工作流系统中如何在特定的一个步骤,调用起另外一条流程

    关键词: 工作流快速开发平台  工作流设计  业务流程管理   asp.net 开源工作流bpm工作流系统  java工作流主流框架  自定义工作流引擎 需求描述: 1, 操作员在操作最后一个节点时, ...

  8. JSONP安全防御要点

    严格安全地实现CSRF方式调用JSON文件:限制Referer.部署一次性token等. 严格安装JSON格式标准输出Content-Type及编码(Content-Type: application ...

  9. 《编写可维护的JavaScript》 笔记

    <编写可维护的JavaScript> 笔记 我的github iSAM2016 概述 本书的一开始介绍了大量的编码规范,并且给出了最佳和错误的范例,大部分在网上的编码规范看过,就不在赘述 ...

  10. 如何在Idea中编译构建Spring Framework 5.x

    如何在Idea中编译构建Spring Framework 5.x 安装配置Gradle(略) 下载源码:git clone https://github.com/spring-projects/spr ...