MYSQL简单存储过程创建和java中的调用

Java 调用MySQL存储过程 (1)相关API:java.sql.CallableStatement 使用到java.sql.CallableStatement接口,该接口专门用来调用存储过程,该对象的获得依赖于java.sql.Connection,通过Connection实例的prepareCall()方法返回CallableStatement对象, prepareCall()内部为一固定写法{call 存储过程名(参 阅读详情
创建存储过程:
-------------------------------------------------------------------------------------------------------------------
DROP PROCEDURE IF EXISTS   p_test1;
DELIMITER $$
CREATE    
    PROCEDURE `xxdb`.`p_test1`(status1 VARCHAR(2),detail1 VARCHAR(30), sn VARCHAR(10),OUT outmsg VARCHAR(50))
    BEGIN
	DECLARE cnttask INT;
	
	DECLARE lock_cursor CURSOR FOR 
		SELECT COUNT(1) AS cnt FROM tasktable;
	START TRANSACTION;		
	OPEN lock_cursor;
	FETCH lock_cursor INTO cnttask;	
	UPDATE tasktable a SET detail= CONCAT('cnt',cnttask,status1,detail1) WHERE a.sn=sn;
	CLOSE lock_cursor;	
	SELECT taskdetail INTO outmsg FROM tasktable WHERE tasktable.sn=sn;
	COMMIT;
    END$$
DELIMITER ;

-------------------------------------------------------------------------------------------------------------------
调用:

CALL p_test1('XY','dssss2','0000000011',@xx);
SELECT @xx;

-------------------------------------------------------------------------------------------------------------------
创建函数:

DROP FUNCTION IF EXISTS f_test1;
DELIMITER $$

USE `atm`$$

DROP FUNCTION IF EXISTS `f_test1`$$

CREATE DEFINER=`root`@`localhost` FUNCTION `f_test1`( param VARCHAR(10)) RETURNS VARCHAR(50) CHARSET gbk
BEGIN
	DECLARE hi VARCHAR(50);
	DECLARE len INT DEFAULT 0 ;
	SET hi = 'from f_test1';
	SET len = LENGTH(param);
	RETURN CONCAT('Hi [',param,']',' from[',hi,'] length:',len);
	
    END$$

DELIMITER ;
------------------------------------------------------------------------------------------------------------------------
调用:
SELECT f_test1('abcdefg');

--------------------------------------------------------------------------------------------------------------------------

/* java中调用存储过程: */

package com.database.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;

public class TestCallProcedure {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Connection con = null;
		
		CallableStatement st = null;
		String sql = "{ call p_test1(?,?,?,?) }";//3个输入参数,1个输出参数
		
		try {
			con = TestMySQLdatasource.getConnection();
			st = con.prepareCall(sql);
			st.setString(1, "a1" );//输入参数
			st.setString(2, "XYZ");//输入参数
			st.setString(3, "0000000011");//输入参数
			st.registerOutParameter(4, Types.VARCHAR);//输出参数,结果,位于第4
			st.execute();
			
			System.out.println(st.getString(4));
			con.close();
		} catch (SQLException e) {
			System.out.println(e.toString());
		}
		

	}
	/*
	 * 
	 * CREATE DEFINER=`root`@`localhost` PROCEDURE `p_test1`(status1 VARCHAR(2),detail1 VARCHAR(30), sn VARCHAR(10),out outmsg varchar(50))
 		BEGIN
	     DECLARE cnttask INT;
	     
	     DECLARE lock_cursor CURSOR FOR 
	         SELECT COUNT(1) AS cnt FROM tasktable;
	     START TRANSACTION;        
	     OPEN lock_cursor;
	     FETCH lock_cursor INTO cnttask;    
	     UPDATE tasktalbe a SET taskdetail= CONCAT('cnt',cnttask,status1,detail1) WHERE a.sn=sn;
	     CLOSE lock_cursor;    
	     select taskdetail into outmsg from tasktalbe where tasktalbe.sn=sn;
	     COMMIT;
	    END
	 */

}



Power BI实战:从数据清洗到可视化报表的完整流程 本文详细介绍了使用Power BI进行数据分析的完整流程,从数据获取、清洗整理到建模与可视化。通过实战案例,重点讲解了连接MySQL数据库、使用Power Query进行数据清洗、利用DAX创建核心度量值以及设计交互式报表的关键步骤与技巧,帮助用户高效完成从原始数据到专业可视化报表的转化,实现数据驱动决策。 阅读详情

相关推荐

LangChain开发避坑指南:为什么Pylance总提示‘无法解析导入‘?实测7种修复方案

本文深入解析了在VS Code中使用LangChain开发时,Pylance频繁提示‘无法解析导入’的根本原因——Python解释器与语言服务器的环境路径不一致。文章提供了从基础排查到深度配置的7种实测修复方案,包括切换解释器、配置extraPaths、使用pyrightconfig.json等,旨在帮助开发者彻底解决此问题,提升AI应用开发效率。

weixin_28826521的博客 444

java如何调用mysql存储过程_JAVA如何调用mysql写的存储过程

存储过程是干什么的,自己百度,百度上讲的比我讲的好。为什么要用存储过程,这样可以提高效率。废话少说,直接上代码:首先说一下语法:在mysql中写存储过程DELIMITER $$CREATE/*[DEFINER = { user | CURRENT_USER }]*/PROCEDURE `test`.`text_d`(in param1 varchar(10),in param2 varchar(2...

weixin_35971787的博客 191

从零到一:手把手教你用Python搭建医学影像识别CNN模型(附完整代码)

本文详细介绍了如何使用Python和TensorFlow/Keras从零开始构建一个医学影像识别的CNN模型,涵盖数据预处理、模型架构设计、训练调优及部署全流程。通过实战案例和完整代码,帮助开发者快速掌握深度学习在医学影像识别中的应用,特别适合医疗AI领域的初学者和研究者。

spark7igniter的博客 200

mysql存储过程以及java中如何调取存储过程

mysql存储过程以及java中如何调取存储过程mysql存储过程java调取存储过程 mysql存储过程 随便使用了一张现有表customs,实现简单的存储过程 改变声明语句结束符号,默认为分号,这里自定义为$ mysql> delimiter $ 声明存储过程(业务逻辑为删除操作) mysql> create procedure proc_del(in usid integer) -> begin -> delete from customs wher

weixin_42487460的博客 238

vue微前端qiankun框架学习到项目实战,基座登录动态菜单及权限控制

技术无关,独立开发,独立部署,增量升级,独立运行,微前端的核心目标是将巨石应用拆解成若干可以自治的松耦合微应用。

前端开发工程师 9747

SQL Server 内存占用高分析及解决办法(超详细)

如果想让 Sql Server 主动释放 占用并空闲的内存空间,可以设置Sql Server占用内存的上限,就会让Sql server在。如执行存储过程,自定函数时,SQL Server 需要先二进制编译再运行,编译后的结果也会缓存起来,再次调用时就无需再次编译。才会释放一点占用的内存,所以很多时候,我们会发现运行SQL Server的系统内存往往居高不下这些内存一般都。缓存,以便于再次请求此页的数据的时候,直接从内存返回,就无需读取磁盘了,大大提高了速度。最后文章有啥不对,欢迎大佬在评论区指点!

2301_79080944的博客 3952

jdbc mysql 存储过程查询数据_jdbc调用mysql存储过程实现代码

1. 创建存储过程建立一个MySQL的存储过程 add_pro复制代码 代码如下:delimiter //drop procedure add_pro //create procedure add_pro(a int , b int , out sum int )beginset sum = a * b;end;//2. 调用存储过程复制代码 代码如下:package com.zhanggaoso...

weixin_39997664的博客 108

WslRegisterDistribution failed with error_ 0x8007019e、0x800701bc、0x80370102

Ubuntu 20.04.4 LTS 报错解决方案。分别涉及到三个错误:WslRegisterDistribution failed with error: 0x8007019e、WslRegisterDistribution failed with error: 0x800701bc和WslRegisterDistribution failed with error: 0x80370102

一起加油~ 5万+

转:mysql存储过程学习及java调用存储过程

工作中一直都是用swing,很少接触数据库,最近事少就帮着把公司服务器用csv存储用户资料信息,转移到mysql中去存储,才得以学习下mysql的存储过程。 首先在mysql中练习下存储过程的小例子: [code="java"] mysql> delimiter // mysql> create procedure hello() -> begin -...

天空之城 130

别再为下载速度发愁了!手把手教你给qBittorrent/Transmission添加最新可用Tracker(附2024年实测地址清单)

本文提供2024年BT下载加速实战指南,详细解析Tracker工作原理与速度瓶颈,手把手教你为qBittorrent/Transmission添加最新可用Tracker,并附实测地址清单。通过优化配置和精选Tracker列表,显著提升下载速度和稳定性,解决连接延迟和peer数量限制问题。

weixin_28481133的博客 1260

【C语言】字符常量详解

字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。

LuckiBit 5017

mysql存储过程示例

mysql> delimiter // mysql> create procedure hello() -> begin -> select 'It is not a HelloWorld'; -> end -> // Query OK, 0 rows affected (0.01 sec)其中“delimiter //”的意思是定义结束符号为“//”,以

www_tobesky_com的专栏 387

Halcon 色彩标定:RGB空间下实现白平衡与CCM矩阵合成静态HDR图像

摘要 本文介绍了一种基于Halcon的色彩校正方法,结合白平衡与灰轴约束最小二乘法实现精准颜色还原。方法分为三步:1)自动定位色卡区域并提取灰阶块计算白平衡增益;2)通过前三列色块建立测量值与标准值的映射关系;3)引入灰轴约束条件求解色彩校正矩阵(CCM),确保中性灰区域不偏色。算法采用中位数计算白平衡增益以提高鲁棒性,并通过旋转校正处理色卡倾斜问题。实验表明,该方法能有效消除相机采集的系统色偏,适用于颜色测量、表面检测等机器视觉场景。文末提供了完整代码实现。

LIN943168247的博客 404

Mybatis调用存储过程

1.创建存储过程 例如 存储过程中 in,out, in out 表示; in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。 out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程 in out 表示高参数可以向该过程中传递值,也可以将某个值传出去 创建一个加法的存储过程,输入2个数字,然后计算和输出结果 DROP PR...

lockie的博客 579

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

php存储mysql显示出来教程_简单使用MySQL的存储过程

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 简单使用MySQL的存储过程 MySQL5.0版本引进了存储过程的概念。存储过程可以提高执行效率,更容易维护。 在没有存储过程(procedure)概念之前,通常的业务逻辑sql代码有时很长,它们一般被嵌入在宿主欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入简单使用MySQL的存储过程My...

weixin_31967777的博客 135

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Mysql存储过程的简单创建

1.1         CREATE  PROCEDURE  (创建) CREATE PROCEDURE存储过程名 (参数列表) BEGIN SQL语句代码块 END 注意: 由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前使用关键词 OUT或INOUT 在m

vickyfei的专栏 3695

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

MySQL存储过程以及在JAVA中的程序调用

存储过程是一种存储在数据库中的程序(就像正规语言里的子程序一样),准确的来说,MySQL支持的“routines(例程)”有两种:一是我们说的存储过程, 二是在其他SQL语句中可以返回值的函数(使用起来和Mysql预装载的函数一样,如pi())。本文是为初学习MySQL存储过程的朋友写的,在本文中我们以在MySQL的CLI(command line interface)中建立一个存储过程的示例开始

nicegiving的专栏 1875

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

首先我在mysql的test数据库里定义了一个student表:create table student4(id int primary key,sanme char(5));插入几个数据做测试用:inset into student values(1,'mayi');inset into student values(2,'mayi');inset into student values...

weixin_39737636的博客 1085

Mysql存储过程返回列表,java进行调用

-- auto-generated definition create table t_user ( t_id int auto_increment comment '编号' primary key, t_name varchar(30) null comment '名称', t_age int(10) null comment '年龄',...

hunheidaode的博客 3554

Java调用MySQL存储过程的终极指南

你是否曾经在Java项目中需要调用MySQL存储过程?是否觉得这个过程有些复杂?不用担心,我将带你一步步了解如何在Java中轻松调用MySQL存储过程。通过本文,你将掌握如何设置连接、编写代码以及处理结果集,让你的项目更加高效和稳定。让我们一起探索吧!

Q2024107的博客 812

Mysql存储过程,以及如何用java调用存储过程

最近越来越爱写博客了,以前写博客只是单纯把知识点放进去,读着索然无味,每天就像是做任务一样,现在写博客,会把自己的想法,自己的日常表达出来,像是一本日记,每天记载着我学到了什么,每天结束的时候都会回忆起来我的一天,就会觉得今天是充实的! 昨天写了Mina群聊,本来今天是想写私聊的,但计划不如变化,今天接触了一个新的知识点——Mysql存储过程,于是决定今天先来写一下1.什么是Mysql存储过程?2.为什么要用存储过程?3.如何创建存储过程?4.如何用java调取存储过程? 一、什么是存储过程? 最开始听到宇

qq_45791799的博客 780

Java 调用 MySQL的存储过程

第一步:建立数据表:(前面已经写了基础的数据库与数据表操作,这里不再给出如何创建student和teacher数据表) 第二步、在该数据表中创建存储过程如下: delimiter // ---定义结束符 create procedure stu_pro(in id int, out name varchar) ----存储过程名字和参数 begin ----存储过程开始 se...

weixin_42556307的博客 869

MySQL存储过程的创建、调用与管理详解

文章来源: 学习通http://www.bdgxy.com/普学网http://www.boxinghulanban.cn/智学网http://www.jaxp.net/ 目录存储过程简介为什么要用存储过程?存储过程的优点存储过程的缺点 MySQL 中的存储过程创建与调用过程存储过程语法解析存储过程的参数变量变量赋值流程控制语句if 条件语句case 条件语句while 循环语句repeat 循环语句loop 循环语句存储过程的管理总结存储过程简介 为什么要用存储过程? MySQL5.0 版本开始支持存

菜鸟教程 365

mysql jdbc 创建存储过程_mysql JDBC 调用存储过程

与oracle不同,mysql不支持匿名块,如果需要写过程语句,则必需定义存储过程.如果你会oracle的存储过程,那么mysql的存储过程也很简单了.一.创建存储过程create procedure sp_name()begin.........end二.调用存储过程1.基本语法:call sp_name()注意:存储过程名称后面必需加括号,哪怕该存储过程没有参数传递三.删除存储过程1.基本语法...

weixin_33511821的博客 905

mysql 存储过程 换行_MySQl存储过程学习及其在Java中的调用

使用存储过程的好处就不说了,下面简要说一下存储过程的使用。1. 首先,创建一个新表,用于后面Java代码中的测试。create table a(id int(10) not null,name varchar(20) not null)ENGINE=MyISAM DEFAULT CHARSET=utf8;2.向表中插入一些数据。insert into a ( `id`, `name` ) val...

weixin_36462094的博客 733

java调用mysql函数与存储过程

mysql创建函数 delimiter $ create function func_sum(num1 int,num2 int) returns int begin declare res int; set res=num1+num2; return res; end$ delimiter ; java调用mysql函数 /** * 用java调mysql函数 **/ public static void main(String[] args) thr

weixin_42289266的博客 946
上一篇: 调整JVM配置运行java程序
下一篇: SFTP下载客户端[单用户多线程、限速、取消、断点续传]
johnsearcher
博客等级 码龄17年 12粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值