mybatis调用mysql的存储过程(procedure),实现查询操作(student表中的某个年级中的总人数 select (1) 或者 select (*))
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 (*))的更多相关文章
- Mybatis调用数据库的存储过程和方法
转载. https://blog.csdn.net/ml0228123/article/details/81002258 上次的项目,要求我用java代码调用存储过程,折腾了好久.最后总算成功了 ...
- shell脚本 如何调用Mysql的存储过程 解决方案
今天遇到一个在shell脚本里面要调用MySQL的存储过程,查阅了很多资料,发现有的都不好用,自己调试出了如下一种,拿来共享: 用mysql -e “ ”: 例如: mysql -uroot -p ...
- java 调用mysql的存储过程(简单示例)
首先我在mysql的test数据库里定义了一个student表: create table student4( id int primary key, sanme char(5) ); 插入几 ...
- MySQL使用存储过程代替子查询
摘要: 出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该 ...
- mysql / pgsql 使用sql语句查询数据库所有表注释已经表字段注释
mysql使用sql语句查询数据库所有表注释已经表字段注释(转载) 场景: 1. 要查询数据库 "mammothcode" 下所有表名以及表注释 /* 查询数据库 ‘mammo ...
- MySQL快速回顾:高级查询操作
8.1 排序数据 检索出的数据并不是以纯粹的随机顺序显示的.如果不排序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到M ...
- 数据库Mysql的学习(六)-子查询和多表操作
)*0.05 WHERE card_id ='20121xxxxxx'; //子查询就是一个嵌套先计算子查询 SELECT * FROM borrow WHERE book_id =(SELECT b ...
- MySQL--详细查询操作(单表记录查询、多表记录查询(连表查询)、子查询)
一.单表查询 1.完整的语法顺序(可以不写完整,其次顺序要对) (不分组,且当前表使用聚合函数: 当前表为一组,显示统计结果 ) select distinct [*,查询字段1,查询字段2,表达式, ...
- java, mybatis, 调用mysql存储过程
Map<String, Object> bindinfo = new HashMap<String, Object>(); bindinfo.put(&q ...
随机推荐
- Map集合(双列集合)
Map集合(双列集合)Map集合是键值对集合. 它的元素是由两个值组成的,元素的格式是:key=value. Map集合形式:{key1=value1 , key2=value2 , key3=val ...
- vue中百度地图API的调用
1.使用百度地图api需要使用jsonp,来获取百度api的返回,因为vue不自带jsonp所以需要下载 安装jsonp npm i vue-jsonp -S 引入jsop import Vue fr ...
- vue中methods,computed,filters,watch的总结
08.28自我总结 vue中methods,computed,filters,watch的总结 一.methods methods属性里面的方法会在数据发生变化的时候你,只要引用了此里面分方法,方法就 ...
- FLask中蓝图(用于分文件)
一,不使用蓝图,自己分文件 目录结构 -templates -views -__init__.py -user.py -order.py -app.py app.py from views impor ...
- 生产环境中的kubernetes 优先级与抢占
kubernetes 中的抢占功能是调度器比较重要的feature,但是真正使用起来还是比较危险,否则很容易把低优先级的pod给无辜kill.为了提高GPU集群的资源利用率,决定勇于尝试一番该feat ...
- 机器学习:weka中添加自己的分类和聚类算法
不管是实验室研究机器学习算法或是公司研发,都有需要自己改进算法的时候,下面就说说怎么在weka里增加改进的机器学习算法. 一 添加分类算法的流程 1 编写的分类器必须继承 Classifier或是Cl ...
- 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 在Mac OSX上运行Windows应用程序
在Mac OSX中,借助wine,不需要安装虚拟机也可以运行Window应用程序. wine是一个在Linux和UNIX之上的,WIndows3.x和Windows APIs的实现.是运用API转换技 ...
- django-模板之静态文件加载(十四)
1.在templates同级目录下建static 2.index.css 3.index.html {% load static %} <!DOCTYPE html> <html l ...
- Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
最近接外包,需要部署服务器,便是参考了网上的几篇博文,成功在阿里云服务器成功部署了Spring Boot项目,特记下本篇笔记 Spring Boot项目打包 这里说一下部署的一些问题 1.mysql驱 ...