一:存储过程概述
所谓存储过程是一组完成特定功能的SQL语句集。
利用google.com ,baidu.com可以搜索很多
摘自互联网:
写道
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,是利用SQL Server所提供的Transact-SQL语言所编写的程序。功能是将常用或复杂的工作,预先用SQL语句写好并用一个指定名称存储起来, 以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,可由应用程序通过一个调用来执行,而且允许用户声明变量 。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。
http://baike.baidu.com/view/68525.htm
二:Java操作存储过程
java操纵存储过程主要是通过JDBC操作。
1) Java执行存储过程 返回的结果集使用getXXXX获得数据
package com.saas.jdbc;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.CallableStatement;
import java.sql.SQLException;
import java.sql.Types;
public class TestProcedureDemo01 {
public static String _URL="jdbc:mysql://127.0.0.1:3306/shopping_thpad_com?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true";
public static String _LOGIN_NAME="root";
public static String _LOGIN_PASSWORD="123456";
private static Connection connect = null;
private CallableStatement cstmt =null;
private ResultSet rs = null;
/**
* 连接数据库
* @return
*/
public static Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e) {
e.printStackTrace();
}
try {
connect = DriverManager.getConnection(_URL, _LOGIN_NAME, _LOGIN_PASSWORD);
}
catch(SQLException e) {
e.printStackTrace();
}
return connect;
}
/**
* executeUpdate() 是用来执行存储过程
*/
public void execCall() {
connect = getConnection();
try {
cstmt = connect.prepareCall("{call test6(?,?)}");
cstmt.setString(1, "朱诞生第一次执行存储过程了"); //设置第一个参数的值
cstmt.registerOutParameter(2, Types.INTEGER); //设置第二个输出参数的类型
int i = cstmt.executeUpdate();
System.out.println(cstmt.getInt(2)); //获取第二参数的值
cstmt.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
/**
* 关闭连接
*/
public void doClose() {
try {
if(null!=rs) {
rs.close();
rs=null;
}
if(null!=cstmt) {
cstmt.close();
cstmt=null;
}
if(null!=connect) {
connect.close();
connect=null;
}
}
catch(SQLException e) {
e.printStackTrace();
}
}
public static void main(String[]args) {
TestProcedureDemo01 test = new TestProcedureDemo01();
test.getConnection();
test.execCall();
test.doClose();
}
}
DELIMITER $$
USE `shopping_thpad_com`$$
DROP PROCEDURE IF EXISTS `test6`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `test6`(IN in_name VARCHAR(20) CHARACTER SET utf8,OUT count_num INT)
BEGIN
/*声明变量最大值*/
DECLARE max_id INT ;
DECLARE f_num FLOAT;
DECLARE f_num_1 FLOAT DEFAULT 0;
DECLARE f_num_2 FLOAT DEFAULT 2;
DECLARE v_age VARCHAR(5) CHARACTER SET utf8 DEFAULT '25' ;
DECLARE v_sex VARCHAR(10) CHARACTER SET utf8 DEFAULT '男';
DECLARE create_date DATETIME DEFAULT NOW();
SELECT MAX(trade_id)+1 INTO max_id FROM test_proc ORDER BY create_date DESC LIMIT 1;
INSERT INTO test_proc(trade_id,NAME,age,sex,create_date) VALUES(max_id,in_name,v_age,v_sex,create_date);
SELECT COUNT(trade_id) INTO count_num FROM test_proc;
END$$
DELIMITER ;
2) 执行存储过程,返回一条存储过程结果集合
3)执行存储过程,返回多条存储过程结果集合
分享到:
相关推荐
在Java编程中,调用数据库的存储过程是常见的任务,特别是在处理复杂的业务逻辑或需要高效数据操作时。本文将详细讲解如何在Java中调用含有`OUT`参数的存储过程,帮助开发者解决这类问题。 首先,理解存储过程的...
【Java 操作存储过程】 在Java中操作数据库的存储过程是一项常见的任务,这对于数据库交互和数据处理至关重要。这里我们将深入探讨如何使用Java调用不同类型的存储过程,包括无参函数、有返回值的存储过程以及有...
值得注意的是,上述代码中的文件名列表(如Project1.cfg、Unit1.dcu等)与Java调用存储过程无关,它们看起来像是Delphi或FreePascal项目的文件,这些文件通常用于描述项目配置、单元信息、表单布局等,而不是与Java...
在Java编程中,调用数据库存储过程是一种常见的操作,特别是在处理复杂的业务逻辑或者批量数据操作时。存储过程是由一组SQL语句组成的预编译代码,它们存储在数据库中,可以被多次调用,提高效率并简化代码管理。...
在IT领域,特别是数据库操作与Java编程的交集部分,调用存储过程是常见的需求之一。根据提供的文件信息,我们可以深入解析如何在Java中通过JDBC(Java Database Connectivity)调用Oracle数据库的存储过程。 ### ...
### JAVA调用存储过程知识点详解 #### 一、无结果集返回的存储过程调用 在Java中调用不返回结果集的存储过程时,主要步骤包括建立连接、准备调用语句、设置输入参数、执行存储过程以及处理可能产生的警告信息。 1...
在这个场景中,我们将从Java应用程序收集一系列用户数据,将其转换为Oracle数组,然后调用一个预定义的存储过程进行批量更新操作。 #### 五、注意事项与优化建议 - **类型匹配**:确保Java对象属性与数据库对象...
Java操作存储过程是一种常见的数据库交互方式,特别是在处理复杂的业务逻辑或需要高性能的数据处理时。存储过程是预编译的SQL语句集合,存储在数据库服务器中,可以视为可重用的功能模块。Java作为广泛使用的后端...
存储过程在大型数据库系统中扮演着重要角色,因为它能提高性能、增强安全性、减少网络流量以及简化复杂的操作。在Java应用程序中,可以通过Java Database Connectivity (JDBC) API来调用MySQL的存储过程。 首先,...
Java调用存储过程是数据库操作中的常见任务,特别是在复杂的业务逻辑和数据处理中。MyEclipse作为一款强大的Java集成开发环境,提供了方便的工具来支持这一功能。下面将详细介绍如何在MyEclipse中使用Java调用存储...
在Java编程中,调用SQL数据库的存储过程是一项常见的任务,尤其在处理复杂业务逻辑或批量数据操作时。本文将详细介绍如何使用Java来调用存储过程,并探讨相关的数据库设计原则。 首先,理解存储过程的基本概念至关...
### DB2 Java 存储过程相关知识点 #### 标题:DB2 Java 存储过程 **DB2 Java 存储过程** 主要探讨的是如何在 IBM DB2 数据库环境中利用 Java 编写存储过程。这涉及到 DB2 的一系列产品和服务,特别是与 Java 集成...
在Java编程中,调用数据库的存储过程并处理返回结果是常见的任务,特别是在需要执行复杂数据库操作或者封装业务逻辑时。本文将详细探讨如何在Java中调用存储过程,并处理返回的数组类型数据。 首先,存储过程是一种...
在Java编程中,调用数据库的存储过程是常见的任务,特别是在处理复杂的业务逻辑或数据操作时。本实例将深入探讨如何使用Java来调用Oracle数据库中的存储过程。 首先,我们需要了解存储过程的基本概念。存储过程是预...
在Java开发中,有时我们需要与数据库进行深度交互,这时候存储过程就显得尤为重要。特别是当涉及到复杂的业务逻辑或者数据处理时,Oracle数据库中的存储过程能够提供更高效和安全的解决方案。本话题将详细讲解如何...
在Java编程中,调用数据库中的存储过程是常见的任务,特别是在复杂的业务逻辑处理和数据操作时。本篇文章将深入探讨如何使用Java来调用存储过程,以及相关的工具和技术。 首先,存储过程是数据库中预编译的一组SQL...
这个存储过程使用了输入参数 inparam,并根据其值执行不同的操作。 四、 Java 调用带有输入参数的存储过程 要在 Java 中调用带有输入参数的存储过程,需要使用 CallableStatement 对象,并将输入参数传递给存储...