Mybatis 学习总结(八)——调用存储过程

Mybatis调用Oracle带包存储过程 存储过程太多的情况可分包存储。方便查找些。 1.建带包存储过程: oracle中找到包右键新建,代码可参考以下 create or replace package PKG_A_LOG(包名) is /** 存储过程1 **/ PROCEDURE WRITE_LOG(存储过程名)( ID IN VARCHAR2, O_MSG 阅读详情

调用存储过程


调用存储过程,当然我们得了解 mysql 的 存储过程,不了解读者们,请查看MySQL存储过程详解 mysql 存储过程。
需要用到的实体类:

public class User {

    private Integer id;
    private String name;
    private int age;
    private String sex;

    //省略其它必要的基本方法
    ......
}

步骤:
1.先在数据库创建需要的表和创建存储过程

create table p_user(  
    id int primary key auto_increment,  
    name varchar(10),
    sex char(2)
); 

insert into p_user(name,sex) values('A',"男");  
insert into p_user(name,sex) values('B',"女");  
insert into p_user(name,sex) values('C',"男");  

#创建存储过程(查询得到男性或女性的数量, 如果传入的是0就女性否则是男性)
DELIMITER $
CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT)
BEGIN  
IF sex_id=0 THEN
SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='女' INTO user_count;
ELSE
SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='男' INTO user_count;
END IF;
END 
$

2.在实体类映射文件中加入:

<select id="getUserCount" parameterMap="getCountParamMap" statementType="CALLABLE">
        Call mybatis.ges_user_count(?,?)
    </select>

    <!-- 存储过程的传入和传出参数 -->
    <parameterMap type="java.util.Map" id="getCountParamMap">
        <parameter property="sex_id" mode="IN" jdbcType="INTEGER"/>
        <parameter property="user_count" mode="OUT" jdbcType="INTEGER"/>
    </parameterMap>

3.测试:

@Test
    public void testSelect3(){
        //MyBatisUtil 是本人自己写的获取 SqlFactory 的工具类
        SqlSession session = MyBatisUtil.getFactory().openSession();

        String statement = "com.wsb.mybatis.beans.userMapper.getUserCount";

        //用于存放存储过程的传入出参数
        Map<String, Object> parameterMap = new HashMap<>();
        //放入参数
        parameterMap.put("sex_id", 0);
        session.selectOne(statement, parameterMap);

        //取出存储过程中的"user_connt"参数
        Integer userCount = (Integer) parameterMap.get("user_count");

        session.commit();
        System.out.println(userCount);
        session.close();
    }
Mybatis调用Oracle存储过程,Oracle创建存储过程,Mybatis调用procedure Mybatis调用Oracle存储过程,Oracle创建存储过程,Mybatis调用procedure ================================ ©Copyright 蕃薯耀 2020-10-30 https://www.cnblogs.com/fanshuyao/ 一、Oracle创建存储过程 1、Oracle创建无参数的存储过程procedure --Oracle... 阅读详情

相关推荐

Springboot Mybatis 、JPA 调用存储过程,实战教程

mybatis 、JPA 调用存储过程

默默不代表沉默 3933

mybatis总结

mybatis总结

qq_18435669的博客 455

使用 MyBatis 注解方式调用存储过程!

在 MyBatis 中,调用存储过程有两种常用方式:通过 XML 配置文件的方式和通过注解的方式。对于更简洁的开发风格,可以使用 MyBatis 注解方式来调用存储过程。本文将介绍如何使用 MyBatis 注解来调用存储过程。通过 MyBatis 注解调用存储过程是非常简便的,尤其是对于简单的存储过程调用。我们可以使用@Select@Update和@Insert等注解来执行存储过程,利用@Param注解传递参数,并结合@ResultMap进行结果映射。使用@Select@Insert@Update。

喵手的博客 1567

Kubernetes之(十五)身份认证,授权,准入控制

目录 Kubernetes之(十五)身份认证,授权,准入控制 ServiceAccount 创建serviceaccount 自定义serviceaccount 自建证书和账号进行访问apiserver RBAC简介 Kuberne...

weixin_30273175的博客 894

MyBatis中调用MySQL存储过程的详细指南

在数据库管理系统中,存储过程是一组为了完成特定功能的SQL语句集,它们经过编译后被存储在数据库中,可以通过指定的名称来调用执行。存储过程可以接受输入参数,并可返回输出参数和结果集,使得数据操作更加模块化和可重用。MyBatis是一个半自动化的持久层框架,其优势在于对SQL的灵活掌握和轻量级操作。与JDBC相比,MyBatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。

weixin_29476595的博客 1172

PRD撰写效率翻倍秘籍:我是如何用大模型+飞书文档搭建自动化工作流的

本文分享了如何利用大模型与飞书文档构建自动化工作流,以大幅提升PRD撰写效率。通过结构化需求输入、设计模块化提示词模板,并借助自动化脚本桥接数据与文档,产品经理可将繁琐的文档撰写工作自动化,从而将精力聚焦于产品战略与用户洞察。

weixin_28520495的博客 404

kubernetes forbidden: User "system:node:10.39.30.116" cannot list resource "secrets" in API group ""

系统 [root@k8s-119 opt]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) kubernetes 版本 [root@k8s-116 opt]# kubectl version --short Client Version: v1.13.1 Server Version: v1.13.1 docker...

纵横四海的博客 1万+

Netapp FAS2750热备盘替换失败问题分析与解决

本文深入分析了Netapp FAS2750存储系统中热备盘替换失败的故障现象,揭示了磁盘分区属主不匹配导致数据同步无法启动的根本原因。通过详细的排查步骤和解决方案,帮助运维人员快速恢复aggr状态,并提供了长期预防措施和最佳实践建议,确保存储系统的高可用性。

weixin_33737774的博客 399

Mybatis如何调用存储过程

介绍Mybatis调用存储过程

qq_53437454的博客 1万+

5分钟搞定!用ZLMediaKit搭建GB28181视频监控系统(含避坑指南)

本文提供了一份基于ZLMediaKit搭建GB28181视频监控系统的实战指南。文章详细介绍了从环境准备、核心组件(ZLMediaKit与SIP服务器)部署、摄像头配置到内外网穿透的完整流程,并重点分享了设备ID配置、防火墙设置等关键避坑经验,帮助开发者快速构建稳定可控的监控平台。

apple5的专栏 1081

不用写代码!3个免费在线工具教你完成Lasso回归分析(含生存资料处理)

本文介绍3款免费在线工具,帮助用户无需编程即可完成临床数据的Lasso回归分析,特别适合处理生存资料。通过详细的操作指南和实战技巧,读者可以轻松掌握变量筛选、模型优化及结果解读,提升临床研究的效率和准确性。

weixin_33738555的博客 349

MyBatis调用oracle存储过程

前言 存储过程书写要规范(IN 、OUT 参数一定要写上,例如:v_siteNo IN VARCHAR2),不然JAVA调用有问题,拿不到存储过程返回值 存储过程ONE create or replace procedure P_GetToken(v_siteNo IN VARCHAR2, tv OUT var...

thebigdipperbdx的博客 9788

基于激光雷达的目标跟随功能移植到自己的ROS机器人小车上

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、下载目标跟随的源码二、修改话题名称1.修改/cmd_vel话题名称2.修改/scan话题名称3.修改双电机正反转4.目标跟随功能测试 前言 本人尝试把github上的一个目标跟随项目移植到自己的机器人小车上,并且成功了,最终小车可以跟着人移动,在这里分享一下心得。基于激光雷达的目标跟随,通过获取激光雷达的信息,跟随最近的物体。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载目标跟随的源码 源码地址:https:

weixin_44574633的博客 4461

mybatis调用存储过程

MyBatis调用存储过程的方式,和普通的select查询方式用法相同,都可以接收方法入参(parameterType = String | Object | Map)、和方法返回值(resultType | resultMap)。--注意,在mapper-select节点配置时,需要增加一项设置:statementType=“CALLABLE",以表明这是一个存储过程 -->VALUES ('123456','京东金融','渐渐老了','100');//编写调用存储过程的DAO。//客户端调用存储过程。

HakuMaster的博客 8564

60、拓扑码:从理论到应用

本博客深入探讨了拓扑码的基本理论、构造方法及其在量子计算中的应用。重点介绍了颜色码的拓扑起源、编码量子比特的计算方法、弦算子的构造与性质、边界条件的影响、同调描述以及与统计模型相关的错误阈值分析。同时,还涵盖了拓扑码的历史发展、与其他拓扑码的关系、与凝聚态系统的联系,以及其在激发态和高维中的表现。博客展示了拓扑码在容错量子计算和未来量子信息领域的广阔前景。

o1p2q3r的博客 128

Halcon算子知识:optical_flow_mg

光流(Optical Flow)是一种研究图像对齐的算法,一般包括两大类:稀疏光流和稠密光流。稀疏光流就是研究图像中稀疏点的光流,这些点一般是角点;稠密光流则是研究图像中所有点的偏移量。以下介绍halcon的基本光流算子optical_flow_mg的原理方法。该算子计算两个图片的光流法。 二、算子说明 optical_flow_mg(ImageT1, ImageT2 : VectorField : Algorithm, SmoothingSigma, Integration

gongdiwudu的专栏 1万+

mybatis 调用postgresql 存储过程

之前在调用postgresql的存储过程时,还是使用传统的方法,没有充分利用mybatis框架,代码如下所示: @Override public String getBinById(String id) { String name = null; Connection conn = null; try { conn = dataSource.getConnection(); CallableState

浦江之猿的博客 3976

“/usr/lib/wsl/wsl-setup“ failed, exiting

WSL2安装Ubuntu时出现"wsl-setup failed"错误的解决方法 摘要:当Windows用户名包含中文字符时,安装WSL2+Ubuntu会出现"wsl-setup failed"错误。本文提供两种解决方案:1)修改中文用户名(风险较大);2)通过命令手动配置。推荐第二种方法:先使用"wsl -l -v"查看Ubuntu名称,再通过"wsl -d Ubuntu20.04 -e /bin/bash"命令启动WSL2系

猿小白的博客 993

MyBatis调用存储过程,MyBatis调用函数的使用方法

MyBatis调用存储过程,MyBatis调用函数的使用方法 一、MyBatis 调用存储过程 1、不带参数的 <select id="batchAnalyzeAll" statementType="CALLABLE" useCache="false"> call pro_rank_sum_all() </select> ...

HaHa_Sir的博客 8627

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MyBatis(16)如何在 MyBatis 中调用存储过程和函数

调用存储过程和函数是MyBatis支持的强大特性之一,它允许开发者充分利用数据库的功能,封装复杂的业务逻辑。通过上述指南,你应该能够理解并实践在MyBatis中调用存储过程和函数的方法。记得,正确配置MyBatis映射文件和Mapper接口是实现这一功能的关键步骤。

qq_43012298的博客 1898

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

MyBatis 调用存储过程(详解)

项目结构 数据表t_user 创建User package com.po; public class User { private Integer id; private String name; private String sex; private Integer age; public Integer getId() { return id; } publi...

14万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

如何使用mybatis调用存储过程

如何使用mybatis调用存储过程 先提供一个秒杀逻辑(https://github.com/cdefgab1234/seckill)的存储过程: --秒杀执行存储过程 DELIMITER $$ -- 运行第二次,这是为了能多次运行 DROP PROCEDURE IF EXISTS `execute_seckill`$$ -- 参数: in 输入参数; out 输出参数 -- row_coun

小秋蜀黍的博客 2万+

MyBatis如何调用Mysql存储过程

文章目录数据库相关代码相关 阿里规约中不推荐使用存储过程。本文目的仅在于学习MyBatis如何调用存储过程。 本文以添加部门为例。 数据库相关 表结构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lYDHAALJ-1594201041199)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200707113754574.png)] 添加部门的函数addDep()

臭小子的博客 1511

MyBatis中调用存储过程和函数

MyBatis中调用存储过程和函数 2018年03月14日 13:10:41 易雪寒 阅读数:445 一.调用存储过程    1.首先在数据库中定义存储过程,定义的存储过程的代码如下:    //定义存储过程 create or replace procedure pag_add(p1 varchar2,p2 varchar2,p3 out varchar2) as ...

f45056231p的博客 9242
上一篇: MySQL存储过程详解 mysql 存储过程
下一篇: 设计模式学习之路(二) ——观察者模式
programer_bei
博客等级 码龄11年 13粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值