创建存储过程: ------------------------------------------------------------------------------------------------------------------- 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 */ }
相关推荐
总的来说,Java通过JDBC调用MySQL存储过程涉及到连接数据库、创建`CallableStatement`、执行存储过程和处理结果。这使得开发者能够在Java应用中灵活地利用数据库提供的强大功能,实现更高效的数据处理。
以下是一个简单的Java调用MySQL存储过程的示例: ```java import java.sql.*; public class TestJavaProcedure { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb"; ...
总之,Java调用MySQL存储过程是一个涉及JDBC、CallableStatement和数据库交互的过程。理解这些步骤并正确地应用它们,可以有效地利用存储过程提高应用程序的性能和效率。记得在实际开发中,根据实际情况调整代码,...
这就是在Java中调用MySQL存储过程的基本步骤。在实际开发中,你可能需要根据具体的需求进行调整,如处理多结果集、异常处理等。理解这个过程可以帮助你更有效地利用存储过程提升数据库操作的效率和安全性。
MySQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被命名、保存并在需要时调用,极大地提高了数据库开发效率和程序的可维护性。在Java应用程序中,我们经常使用JDBC(Java Database ...
以下是一个简单的示例代码,演示了如何在Java中调用含`OUT`参数的存储过程: ```java import java.sql.*; public class JavaCallProcedure { public static void main(String[] args) { try { Class.forName(...
### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...
值得注意的是,上述代码中的文件名列表(如Project1.cfg、Unit1.dcu等)与Java调用存储过程无关,它们看起来像是Delphi或FreePascal项目的文件,这些文件通常用于描述项目配置、单元信息、表单布局等,而不是与Java...
这个文档合集应该详细讲解了这些步骤和最佳实践,帮助开发者熟练掌握在Java中利用MyBatis调用MySQL存储过程和函数的技巧,从而更高效地进行数据库操作。通过深入学习和实践,开发者可以更好地理解这两者之间的交互,...
MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...
本文将详细讲解如何在Spring MVC和MyBatis集成的项目中调用MySQL存储过程。 首先,让我们理解存储过程的概念。存储过程是在数据库中预编译的一组SQL语句,可以包含输入、输出和内部参数,能够执行复杂的业务逻辑。...
在Java应用程序中调用这些存储过程有助于实现数据库层的功能封装和复用。 首先,要理解Java如何与数据库交互,这通常通过JDBC(Java Database Connectivity)API来实现。JDBC是Java中用于连接和操作各种类型数据库...
1. **Java调用存储过程**:在Java应用中,我们可以通过JDBC(Java Database Connectivity)API来调用数据库中的存储过程。例如,使用CallableStatement对象,设置输入/输出参数,并执行存储过程。这种方式使得Java...
Java调用存储过程是数据库操作中的常见任务,特别是在复杂的业务逻辑和数据处理中。MyEclipse作为一款强大的Java集成开发环境,提供了方便的工具来支持这一功能。下面将详细介绍如何在MyEclipse中使用Java调用存储...
本文将详细讲解如何使用JDBC调用MySQL5的存储过程,包括存储过程的创建、JDBC调用过程以及处理输入输出参数。 首先,我们创建一个简单的MySQL5数据库表`user`,用于演示存储过程的插入操作: ```sql CREATE TABLE ...
通过以上步骤,你已经掌握了如何在MyBatis中调用MySQL存储过程的基本方法。在实际开发中,这将极大地提升你的数据库操作效率,使你能够更好地管理和处理复杂的业务逻辑。在后续的实践中,你可以尝试结合具体业务场景...
### Java调用存储过程的两种方法 在Java中调用数据库中的存储过程是常见的操作之一,这不仅可以提高程序性能和代码可维护性,还可以更好地利用数据库的功能。根据提供的标题、描述以及部分内容,本文将详细介绍Java...
总之,Java调用MySQL存储过程并获取返回值涉及到数据库连接、创建`CallableStatement`对象、设置参数、执行存储过程、处理结果集、关闭资源以及异常处理等多个环节。理解并熟练掌握这些步骤对于进行数据库驱动的Java...
在Java编程中,调用数据库中的存储...总的来说,Java调用存储过程涉及到了JDBC API的使用,参数的设置和结果集的处理,以及可能的事务管理和连接池操作。了解和掌握这些知识,对于开发高效、稳定的数据库应用至关重要。