探索对Informix JDBC驱动程序使用可调用语句的存储过程的执行

JDBC CallableStatement 扩展了 PreparedStatement,并向服务器发送请求,以执行用于复杂操作(比如返回值或使用输入和输出存储过程参数)的存储过程。

在">关系数据库应用程序中,与单个 SQL 语句相比,使用存储过程的主要优势在于查询计划(或执行计划)是在创建存储过程时生成的,并且需要对存储过程的每次执行重用相同的查询计划,这节省了数据库服务器中的大量资源。创建存储过程之后,任何数据库客户端(如 JDBC 应用程序)都可以随意调用这些过程,无需制定新的执行计划。

使用存储过程的方式因数据库服务器而异。数据库管理系统 (DBMS),如 Informix 和 DB2®,使用不同的 SQL 语法来执行存储过程。当应用程序开发人员需要编写以多个 DBMS 为目标的代码时,这使得事情变得更加困难。可调用语句提供了一个在所有 DBMS 系统中使用相同的 SQL 语句的执行存储过程的方法。

为何使用存储过程?

假设11545.html">我们有一个 JDBC 应用程序,该应用程序需要高效地一次又一次重复某个任务序列。我们可能希望使用 Java 方法,但我们希望进行多少次客户端/服务器通信来发送和接收数据呢?数据库服务器将为应用程序发送的每个 SQL 语句准备并生成一个查询计划,这将占用一些 CPU 时间。尽管考虑到了性能,但对一个 SQL 语句使用简单的 Java 方法可能不太好。

使用存储过程(它只是一次性任务)会怎么样呢?创建一个 SQL调用,并且您可以使用 CallableStatement 对象从 JDBC 应用程序中调用它,CallableStatement 对象充当了服务器上存储过程的调用方。大多数业务逻辑将位于存储过程上。这有助于简化客户端代码并会加快执行速度,因为在创建存储过程时就已经准备好了存储过程中包含的 SQL 语句,并对这些语句进行了优化。

在 JDBC 应用程序中调用存储过程

Informix JDBC 驱动程序提供了可用于执行存储过程的 Statement、PreparedStatement 和 CallableStatement 方法。使用哪种方法取决于存储过程的特性。例如,如果存储过程返回一个值,那么应该使用 JDBC Statement 对象。下表提供了哪个存储过程类型使用哪个方法的一些指南。

表 1. 显示基于各个存储过程类型要使用哪个 JDBC 方法的表

存储过程类型 JDBC 方法 存储过程不需要 IN 或 OUT 参数 使用 Statement 对象 存储过程具有 IN 参数 使用 PreparedStatement 对象 存储过程具有 IN 和 OUT 参数 使用 CallableStatement 对象

我们将提供一个在以下情况下使用 Informix JDBC 方法执行存储过程的示例:

使用没有参数的 Statement 使用具有输入参数的 PreparedStatement 使用具有输出参数的 CallableStatement CallableStatement 中的已命名参数 过载的存储过程

上面提到的每个主题将包含以下细节:

在 Informix JDBC 驱动程序过程中调用存储过程所使用的语法 数据库上的存储过程的架构 具有输出的 JDBC 驱动程序示例程序

时间: 2024-12-21 16:06:52

探索对Informix JDBC驱动程序使用可调用语句的存储过程的执行的相关文章

保护与IBM Informix JDBC、ODBC和ESQL/C驱动程序的连接

本文将讨论可信连接和可信上下文,展示如何使用 JDBC.ESQL/C 和 ODBC 驱动程序管理可信上下文. 在传统的三层应用程序模型中,您只有在成功授权之后才能与数据库服务器交互,检查和审计由中间层执行.即使有多个用户登录到中间层,中间层服务器也仅使用单个用户 ID 来http://www.aliyun.com/zixun/aggregation/11872.html">访问数据库,而且会在所有资源上授予权限.此模型无法获取尝试访问数据库的实际用户身份,以进行访问控制.另外,如果中间层用

我们目前使用的 JDBC 驱动程序

问题描述 我们目前使用的JDBC驱动程序可分为以下四个种类:1.JDBC-ODBC桥加ODBC驱动程序(JDBC-ODBCbridgeplusODBCdriver):它利用ODBC驱动程序提供JDBC访问.注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上.因此,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码.2.本地API-部份用Java来编写的驱动程序(Native-

Java加载JDBC驱动程序实例详解_java

本文实例说明了Java加载JDBC驱动程序的方法,运行本文实例代码后,如果连接成功就会显示如下一条语句:sun.jdbc.odbc.JdbcOdbcDriver@6ec12,如果连接不成功,则显示加载数据库驱动程序出现异常. Java加载JDBC的实现方法: 通过调用Class.forName()方法可以显式地加载一个驱动程序.该方法的入口参数为要加载的驱动程序.例如:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")语句加载了SUN 公司开发的

DB2 JDBC驱动程序及其支持的功能简介

JAVA的应用日益广泛,采用JAVA程序访问数据库需要通过JDBC驱动程序.根据JDBC规范,JDBC驱动程序分为四类: 第一类:驱动程序是对另外一种数据访问API的映射,如ODBC,该类驱动程序的一个例子就是JDBC-ODBC桥驱动程序.该类驱动程序需要依赖于本地库文件,不易于移植. 第二类:驱动程序一部分采用JAVA编写,一部分采用本地代码.该驱动程序依赖于它所连接的特定数据源的客户端库文件,同样需要依赖于本地库文件,也不易于移植. 第三类:采用纯JAVA编写,通过独立于数据库的协议跟中间件

对SUN定义的四种JDBC驱动程序标准简介

SUN定义的四种JDBC驱动程序标准: Type1 JDBC-ODBC桥 作为JDK1.1后的一部分,是sun.jdbc.odbc包的一部分 Application-->JDBC-ODBC Bridge(Type1 jdbc driver)--->JDBC-ODBC Library-->ODBC Driver-->Database 适用于快速的原型系统,没有提供JDBC驱动的数据库如Access Type2 JAVA to Native API 利用开发商提供的本地库来直接与数据库

StelsCSV 5.1发布 JDBC驱动程序

StelsCSV是一个JDBC驱动程序,用于执行文本文件的SQL语句和其他JDBC操作(逗号分隔,制表符分隔的,固定长度等).使用此驱动程序,用户可以轻松地创建一个简单的纯文本文件组成的数据库.驱动程序可用于写数据输入程序和迁移工具.它支持ANSI SQL92的大多数关键字,表联接,INSERT.UPDATE和DELETE语句,http://www.aliyun.com/zixun/aggregation/18278.html">数据类型,合计,转换,字符串,和用户定义的SQL函数. St

StelsDBF 5.1发布 DBF JDBC驱动程序

StelsDBF是一款DBF JDBC类型的驱动程序,用于用户在DBF文件来执行SQL查询和其他JDBC操作(如使用的dBase III/IV/V,XBASE,FoxPro).该驱动程序是完全独立于平台,不需要安装额外的客户端或服务器软件来提供访问DBF文件.它可以有效地用来创建.处理和输出DBF数据库到你的Java应用程序中.它支持ANSI SQL'92关键字的最内层和外层的表联接,创建.插入.更新和删除语句,交易,合计,数值,字符串转换和用户定义的SQL函数. StelsDBF 5.1版本添

微软再发力,正式宣布开源 JDBC 驱动程序

11月17日,微软项目经理 Andrea Lam 在开发者社区地宣布 SQL Server 的 Microsoft JDBC 驱动程序开源.希望通过驱动程序的开源,从社区获得更快的反馈,更快的发布节奏,以及基于 Java 开发人员需要支持的方案开发新功能. 详情请查看公告视频. 开源的驱动程序包括: 根据 MIT 许可证在 GitHub 上发布的 Java 源代码 Maven 和 Ant 构建脚本(构建您自己的 jars 以支持 JDBC 4.1 规范(用于JRE 7)或 JDBC 4.2 规范

浅谈4种类型的JDBC驱动程序 

JDBC 在网上下载JDBC驱动程序,常看见Type4字样,开始以为是厂商自己的标准,近来翻看资料,原来是SUN定义的JDBC标准. Type1 JDBC-ODBC桥 作为JDK1.1后的一部分,是sun.jdbc.odbc包的一部分 Application--->JDBC-ODBC Bridge(Type1 jdbc driver)---->JDBC-ODBC Library--->ODBC Driver-->Database 适用于快速的原型系统,没有提供JDBC驱动的数据库如