一、对存储过程的调用分三部分
1.连接(与数据库建立连接)
Class.forName(COM.ibm.db2.jdbc.net.DB2Driver).newInstance();
Connection con=DriverManager.getConnection(url,user,password);
2.注册输出参数
cs.registerOutParameter (3, Types.INTEGER);
3.调用存储过程:
CallableStatement cs=con.prepareCall({call store_name(参数,参数,参数)});
二、调用举例:
import java.net.URL;
import java.sql.*;
class test2
public static void main(String args[])
String url = jdbc:db2://wellhope/sample;
String user=db2admin;
String password=db2admin;
try
Class.forName(COM.ibm.db2.jdbc.net.DB2Driver).newInstance(); //与数据库建立连接
Connection con=DriverManager.getConnection(url,user,password);
checkForWarning(con.getWarnings());
DatabaseMetaData dma=con.getMetaData();
String str=This is a string;
//int hashcode=str.hashCode();
//System.out.println(Hashcode +hashcode);
//创建Statement对象,用于执行SQL语句
Statement stmt=con.createStatement();
//创建CallableStatement对象,用于执行存储过程
CallableStatement cs=con.prepareCall({call PRO_YHDL1(?,?,?)});
//注册输出参数
cs.registerOutParameter (3, Types.INTEGER);
int result = 0;
cs.setString(1,123);
cs.setString(2,123);
cs.execute();
result = cs.getInt (3);
dispResultSet(result);
cs.close();
con.close();
catch(SQLException ex)
System.out.println( * * * SQLException caught * * * );
while(ex!=null)
System.out.println(SQLState: +ex.getSQLState());
System.out.println(Message: +ex.getMessage());
System.out.println(Vendor: +ex.getErrorCode());
exex=ex.getNextException();
System.out.println();
catch(java.lang.Exception ex)
ex.printStackTrace();
三、存储过程举例:
Pro_yhdl1是一个存储过程,它的功能是从数据库表YHDL中取出PWD:
import java.sql.*;
public class Pro_yhdl1
public static void pro_yhdl1 ( String m_id,
String m_pwd,
int[] result ) throws SQLException, Exception
Connection con = DriverManager.getConnection(jdbc:default:connection);
PreparedStatement stmt = null;
ResultSet rs = null;
String sql;
String m_password=;
sql = SELECT
+ DB2ADMIN.YHDL.PWD
+ FROM
+ DB2ADMIN.YHDL
+ WHERE
+ (
+ (
+ DB2ADMIN.YHDL.ID = +m_id.trim() +
+ )
+ );
stmt = con.prepareStatement( sql );
rs = stmt.executeQuery();
while (rs.next())
m_password=rs.getString(1);
m_passwordm_password=m_password.trim();
if (rs.wasNull())
System.out.print(NULL);
else
System.out.print(m_password);
result[0] =1;
else
result[0] =0;
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (con != null) con.close();
分享到:
相关推荐
3. **调用存储过程** 调用已创建的存储过程如下: ```sql CALL square(5, @square_result); SELECT @square_result; ``` 在这里,我们传入5作为输入参数,并将结果存储在一个变量中,然后查询这个变量的值。 ...
三、调用存储过程 调用DB2存储过程,使用CALL语句: ```sql CALL GET_MAX_EMPLOYEE_ID(@max_emp); ``` 在这里,@max_emp是一个变量,用于接收存储过程的输出结果。 四、存储过程的优点 1. 提高性能:存储过程在...
- **如果显示调用存储过程时传null值要注意**:在调用存储过程时传递NULL值时,需要特别注意,因为这可能会导致意料之外的行为。 #### 四、DB2编程性能注意 - **大数据的导表的使用(export,load,import)**:在处理...
- **存储过程的相互调用**:存储过程之间可以相互调用,但在设计时应注意避免死循环,并确保调用链清晰。 ### 性能优化 - **大数据导表的使用**:在处理大量数据时,使用`EXPORT`, `LOAD`, `IMPORT`命令可以显著...
DB2存储过程是数据库管理中一种强大的编程工具,它允许用户在数据库级别封装复杂的SQL语句和控制流...通过本入门实例文档,读者将能够了解DB2存储过程的基本概念、创建和调用方法,为进一步的数据库编程打下坚实基础。
总的来说,"DB2数据库帮助类"是为了简化与DB2数据库的交互而创建的一系列辅助方法的集合,它通常会包裹对`IBM.Data.DB2.DLL`的调用,提供更友好的API供其他部分代码使用。DEMO文件可能是包含了一个简单的C#示例项目...
此外,对于更复杂的数据库操作,如事务处理、参数化查询或存储过程调用,你可以进一步扩展这个基础模板。例如,使用`OleDbCommand.ExecuteNonQuery()`执行更新、插入或删除操作,或者使用`OleDbCommand....
当用户定义一个存储过程时,它会通过`CREATE PROCEDURE`语句注册到DB2数据库的`SYSCAT.ROUTINES`表中,这使得存储过程成为数据库的一部分,可以被多次调用而不需重新编译。 #### 为何使用存储过程? 1. **减少网络...
总结,使用C#操作IBM DB2数据库涉及的关键知识点包括:数据库连接、SQL命令执行、数据读取、参数化查询、存储过程调用、事务处理以及数据适配器和数据集的使用。通过`IBM.Data.DB2.dll`和`IBM.Data.Application...
实验 #1 安装DB2 Express-C,创建 SAMPLE数据库........................................................32 第 4章 – DB2的应用环境............................................................................
DB2存储过程是数据库管理系统DB2中的一个重要特性,它允许用户编写包含一组SQL语句的程序,这些程序可以在需要时执行,以完成特定的数据...对于开发、维护和优化DB2数据库系统的人员来说,这是一份非常宝贵的学习资源。
这篇博客“window db2数据库备份Bat脚本”可能详细讲解了如何利用批处理脚本来实现DB2数据库的备份过程。 DB2数据库备份主要涉及以下几个知识点: 1. **备份类型**:DB2支持全量备份和增量备份。全量备份会复制...
DB2存储过程是一组为了完成特定功能的SQL语句集合,通过存储在数据库中,可被应用程序或其他存储过程调用。DB2存储过程使用SQL Procedure Language (SQLPL),这是SQL Persistent Stored Module (PSM) 标准的一个子集...
2. **过程执行**:在SQL语句中调用存储过程,以及如何处理过程中的异常。 3. **存储过程的修改与删除**:如何更新或删除已存在的存储过程。 4. **游标和循环**:在存储过程中使用游标进行逐行处理,以及如何构建嵌套...
- **7.5 发布存储过程**:发布存储过程供其他用户或应用程序调用。 - **7.6 行长度、列数以及每页行数在表空间中的限制**:了解表空间的各种限制。 - **7.7 编译SQL语句时出现SQL0101N错误**:解决SQL编译错误。 - *...
- **Java数据库链接 (JDBC API)**:允许Java应用程序和Applet通过标准的接口来访问DB2数据库。 - **Microsoft Visual Basic和Visual C++应用程序**:支持使用**数据存取对象 (DAO)** 和 **远程数据对象 (RDO)** 规范...
- **创建与调用**:介绍如何创建存储过程,并通过实例演示如何在应用中调用它们。 - **优点**:提高执行效率、增强代码的复用性、简化应用程序的复杂度等。 - **案例分析**:结合Order Entry 应用程序,深入探讨存储...
在本文中,我们将深入探讨XXX商业银行在DB2数据库日常管理及性能优化方面遇到的问题和解决方案。DB2是一款广泛应用于金融行业的高性能关系型数据库管理系统,它为处理大量交易提供了可靠的平台。 首先,我们要理解...