当前位置: 首页 > 知识库问答 >
问题:

“prepared-statement”是存储过程吗?

赫连骏
2023-03-14

“prepared-statement”是存储过程吗?从这个链接看来不是。与从这个链接准备好的语句相比,它似乎是。JDBC简介

(Ctrl+F存储过程,查找第二个链接中与存储过程相关的位)

在后一个链接中,他们在官方oracle web页面中显示的代码示例是一个准备好的语句,而不是一个可调用的语句,我认为它对应于一个存储过程。

共有1个答案

穆宾白
2023-03-14

您是对的,该教程中引用的代码没有调用存储过程。其意图是传达这是一个用Java编写的存储过程:

最新一代的数据库产品允许使用Java编程语言和JDBC API编写存储过程。

下面的代码是如何使用Java编程语言创建非常简单的存储过程的示例。注意,存储过程只是一个静态的Java方法,它包含正常的JDBC代码。它接受两个输入参数,并使用它们更改员工的车号。

(重点是地雷)

例如Oracle支持Java存储过程,本教程中的示例是如何使用Java实现该存储过程。在我看来,这是非常令人困惑的,因为这不是从Java调用存储过程的方式,而且这不应该是本形式的JDBC教程的一部分。

需要说明的是:PreparedStatement本身不是存储过程,但可以用来调用(执行)存储过程(同样适用于Statement),CallableStatement只是具有更多适合执行存储过程的特性。

在本教程中,Java存储过程使用PreparedStatement执行查询,作为Java存储过程执行的一部分。不幸的是,本教程通过讨论这一高级主题而不讨论执行存储过程的正常任务,使问题浮云化。

 类似资料:
  • 问题内容: 我使用的是与Hibernate中(没有硬编码值)。我想知道Hibernate 用于什么? 关心: 我想将此查询创建的执行计划保留在缓存中,以便下次在数据库上触发相同的查询时,它将使用相同的执行计划。 仅供参考: 我正在使用MSSQL Server 2008 我找不到stackoverflow链接,甚至在Google中也找不到,所以请提供我的链接(如果有)。 问题答案: 我试图使用Hib

  • 数据访问层支持存储过程调用,调用数据库存储过程使用下面的方法: $resultSet = Db::query('call procedure_name'); foreach ($resultSet as $result) { } 存储过程返回的是一个数据集,如果你的存储过程不需要返回任何的数据,那么也可以使用execute方法: Db::execute('call procedure_name'

  • 问题内容: 我试图在postgres 9.3上使用sql调用函数内的函数。 这个问题与我的另一篇文章有关。 我写了下面的函数。到目前为止,我还没有合并任何类型的save-output(COPY)语句,因此我试图通过创建嵌套函数print-out函数来解决此问题。 以上功能有效。 尝试创建嵌套函数。 调用嵌套函数。 输出 上面给出了这个。但是,当在print_out()中将arg1,arg2替换为’

  • 我们前面所学习的 MySQL 语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,经常会有需要多条 SQL 语句处理多个表才能完成的操作。 例如,为了确认学生能否毕业,需要同时查询学生档案表、成绩表和综合表,此时就需要使用多条 SQL 语句来针对这几个数据表完成处理要求。 存储过程是一组为了完成特定功能的 SQL 语句集合。使用存储过程的目的是将常用或复杂的工作预先用 SQL

  • 本文向大家介绍Dapper.NET 存储过程,包括了Dapper.NET 存储过程的使用技巧和注意事项,需要的朋友参考一下 示例 简单使用 Dapper完全支持存储的proc: 输入,输出和返回参数 如果您想要更精美的东西,可以执行以下操作: 表值参数 如果您有一个接受表值参数的存储过程,则需要传递一个数据表,该表的结构与SQL Server中的表类型相同。这是表类型和使用它的过程的定义: 要从c

  • 我试图在我的内存Hsqldb数据库中设置一个存储过程,用于测试目的。我正在使用的存储过程是在MySql中开发的,所以我想用HSqlDb来设置它,以适应我的测试包 我试图创建一个简化版本的程序,但还没有乐趣。 程序是 我在运行测试时遇到的错误如下