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

php中文网
发布: 2016-06-07 17:54:41
原创
1687人浏览过

为了提高关系数据库应用程序的性能,通常会使用存储过程,存储过程只不过是用户定义的功能,其中包含存储在数据库中的一系列 SQL 语句。在本文中,我们将演示如何通过对 Informix JDBC 驱动程序使用可调用语句来访问存储过程。

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

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

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

为何使用存储过程?

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

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

Prisma
Prisma

Prisma是一款照片编辑工具,用户可以轻松地将照片转换成数字艺术。

Prisma 92
查看详情 Prisma

在 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 驱动程序示例程序

驱动精灵
驱动精灵

驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前有效的驱动软件,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号