iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中如何使用存储过程
  • 432
分享到

MySQL中如何使用存储过程

2024-04-02 19:04:59 432人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关Mysql中如何使用存储过程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 使用CallableStatemen

这篇文章将为大家详细讲解有关Mysql中如何使用存储过程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

使用CallableStatements执行存储过程

mysql版本:5.0
Connector/J的版本:3.1.1以上(java.sql.CallableStatement接口已完全实现,除了getParameterMetaData()方法)
MySQL的存储过程语法在MySQL参考手册的"存储过程和函数"一章.
Http://www.mysql.com/doc/en/Stored_Procedures.html
下面是一个存储过程,返回一个inOutParam增1后的值,以ResultSet形式传入一个字符串参数inputParam.
CREATE PROCEDURE demoSp(IN inputParam VARCHAR(255), INOUT inOutParam INT)
BEGIN
DECLARE z INT;
SET z = inOutParam + 1;
SET inOutParam = z;
SELECT inputParam;
SELECT CONCAT('zyxw', inputParam);
END

要通过connector/J使用demoSp这个存储过程,要经过几个步骤:
1.Connection.prepareCall()


  1. import java.sql.CallableStatement;

  2. ...

  3. //

  4. // Prepare a call to the stored procedure 'demoSp'

  5. // with two parameters

  6. //

  7. // Notice the use of JDBC-escape syntax ({call ...})

  8. //

  9. CallableStatement cStmt = conn.prepareCall("{call demoSp(?, ?)}");

  10. cStmt.setString(1, "abcdefg");


Connection.prepareCall()方法非常消耗资源,因为jdbc驱动通过元数据(metadata)的获取支持输出参数.出于执行效率的考虑,应该尽可能减少不必要的prepareCall调用,重用CallableStatement对象.

2.注册输出参数(如果有的话)

要得到输出参数的值(创建存储过程时设置的OUT和INOUT),JDBC要求这些参数必须要在数据库操作执行之前通过reGISterOutputPrameter()方法设置.


  1. import java.sql.Types;

  2. ...

  3. //

  4. // 下面给出了设置输出参数的几个方法

  5. //

  6. // 注册第二个参数为输出参数

  7. //

  8. cStmt.registerOutParameter(2);

  9. //

  10. // 注册第二个参数为输出参数,设定getObject得到的返回值的类型为整型

  11. //

  12. cStmt.registerOutParameter(2, Types.INTEGER);

  13. //

  14. // 注册名为"inOutParam"的参数为输出参数

  15. //

  16. cStmt.registerOutParameter("inOutParam");

  17. //

  18. // 注册名为"inOutParam"的参数为输出参数,设定getObject得到的返回值的类型为整型

  19. //

  20. cStmt.registerOutParameter("inOutParam", Types.INTEGER);


3.设置输入参数(如果有的话)
类似PreparedStatement的设置参数方法.


  1. //

  2. // 设置第一个参数值

  3. //

  4. cStmt.setString(1, "abcdefg");

  5. //

  6. // 根据名字设置参数值

  7. //

  8. cStmt.setString("inputParameter", "abcdefg");

  9. //

  10. // 根据索引值设置输入/输出参数

  11. //

  12. cStmt.setInt(2, 1);

  13. //

  14. // 根据参数名设置输入/输出参数

  15. //

  16. //

  17. cStmt.setInt("inOutParam", 1);

  18. ...



4.执行CallableStatement,获取结果集合或输出参数
尽管CallableStatement支持Statement接口的所有执行方法(executeUpdate(),executeQuery()或execute()),最具伸缩性的方法是execute(),因为你不需要知道是否这个存储过程返回结果集合.


  1. ...

  2. boolean hadResults = cStmt.execute();

  3. //

  4. // 处理返回的结果集合

  5. //

  6. while (hadResults) {

  7. ResultSet rs = cStmt.getResultSet();

  8. //

  9. ...

  10. hadResults = cStmt.getMoreResults();

  11. }

  12. //

  13. // 获取输出参数,通过索引值或参数名

  14. //

  15. //

  16. int outputValue = cStmt.getInt(1);

  17. outputValue = cStmt.getInt("inOutParam");


关于“MySQL中如何使用存储过程”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中如何使用存储过程

本文链接: https://www.lsjlt.com/news/62771.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中如何使用存储过程
    这篇文章将为大家详细讲解有关MySQL中如何使用存储过程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 使用CallableStatemen...
    99+
    2024-04-02
  • 如何在mysql中使用存储过程
    如何在mysql中使用存储过程?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中...
    99+
    2024-04-02
  • 如何使用mysql存储过程中的if
    这篇文章主要介绍了如何使用mysql存储过程中的if,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在mysql...
    99+
    2024-04-02
  • 如何在 PHP 中使用 MySQL 存储过程?
    要在 php 中使用 mysql 存储过程:使用 pdo 或 mysqli 扩展连接到 mysql 数据库。准备调用存储过程的语句。执行存储过程。处理结果集(如果存储过程返回结果)。关闭...
    99+
    2024-05-11
    mysql php
  • php+mysql如何使用存储过程
    这篇文章主要介绍“php+mysql如何使用存储过程”,在日常操作中,相信很多人在php+mysql如何使用存储过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php+my...
    99+
    2023-04-19
    mysql php
  • MySql中如何使用存储过程参数
    MySql中如何使用存储过程参数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。存储过程 in参数 的使用IN参数只用来向过程传...
    99+
    2024-04-02
  • mysql 中如何调用存储过程
    mysql 中如何调用存储过程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  MySQL调用存储过程必须要使用call语句调...
    99+
    2024-04-02
  • mysql中如何调用存储过程
    这篇文章主要讲解了“mysql中如何调用存储过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中如何调用存储过程”吧! ...
    99+
    2024-04-02
  • 如何在mysql存储过程中使用游标
    本篇文章给大家分享的是有关如何在mysql存储过程中使用游标,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在处理存储过程中的结果集时,可以使用...
    99+
    2024-04-02
  • oracle中如何使用存储过程
    这期内容当中小编将会给大家带来有关oracle中如何使用存储过程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1.基本结构 CREATE OR REPLAC&...
    99+
    2024-04-02
  • oracle中存储过程如何使用
    今天就跟大家聊聊有关oracle中存储过程如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一. 使用for循环游标:遍历所有职位为经理的雇员1...
    99+
    2024-04-02
  • php中如何调用mysql存储过程
    今天就跟大家聊聊有关php中如何调用mysql存储过程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。存储过程和函数是MySql5.0刚刚引入的。关于...
    99+
    2024-04-02
  • 如何在MySQL中使用C#编写存储过程
    如何在MySQL中使用C#编写存储过程在MySQL数据库中,存储过程是一组预定义的SQL语句,可以以一定的逻辑顺序组合成一个单元的程序。它可以用于简化和优化数据库操作,并提高应用程序的性能和安全性。C#是一种广泛使用的编程语言,具有强大的数...
    99+
    2023-10-22
    MySQL C# 存储过程
  • 如何在MySQL中使用存储过程和函数?
    如何在MySQL中使用存储过程和函数?在MySQL中,存储过程和函数是被封装的一组SQL语句,可以被重复调用。存储过程是一组可以在服务器上执行的SQL语句集合,而函数则是一个独立的且可重用的代码块。两者的不同之处在于,存储过程可以返回多个结...
    99+
    2023-10-22
    函数 MySQL 存储过程
  • 如何在MySQL中使用Python编写存储过程
    标题:MySQL中使用Python编写存储过程的示例及实践指南在MySQL中使用存储过程可以有效地将复杂的数据库操作封装起来,提高数据库的执行效率和安全性。本文将介绍如何使用Python编写MySQL的存储过程,并提供具体的代码示例供参考。...
    99+
    2023-10-22
    Python MySQL 存储过程
  • MySQL IF 语句如何在存储过程中使用?
    MySQL IF 语句在存储过程中实现基本条件构造。其语法如下 -IF expression THEN Statements; END IF;它必须以分号结尾。为了演示 IF 语句在 MySQL 存储过程中的使用,我们将创建以下存储过程,该...
    99+
    2023-10-22
  • mysql如何调用存储过程
    在MySQL中调用存储过程可以使用CALL语句。语法如下:```CALL procedure_name([parameter1, parameter2, ...]);```其中,procedure_name是存储过程的名称,parame...
    99+
    2023-08-11
    mysql
  • MySQL存储过程中如何使用局部变量?
    局部变量是在存储过程中声明的变量。它们仅在声明它们的 BEGIN…END 块内有效,并且可以具有任何 SQL 数据类型。为了演示它,我们正在创建以下过程 -mysql> DELIMITER // ; mysql> Create ...
    99+
    2023-10-22
  • MySQL中怎么使用存储过程
    MySQL中怎么使用存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 mysql存储过程存储过程(Stored  P...
    99+
    2024-04-02
  • MySQL存储过程的参数如何使用
    这篇文章主要介绍“MySQL存储过程的参数如何使用”,在日常操作中,相信很多人在MySQL存储过程的参数如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL存储过...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作