结合使用语句和存储过程

下载 JDBC 驱动程序

存储过程是一个数据库过程,类似于其他编程语言中的过程,它包含于数据库本身。 在 SQL Server 中,通过使用 Transact-SQL,或使用公共语言运行时 (CLR) 和某种 Visual Studio 编程语言(如 Visual Basic 或 C#),可以创建存储过程。 通常,SQL Server 存储过程可执行下列操作:

  • 接受输入参数并以输出参数的格式向调用过程或批处理返回多个值。

  • 包含用于在数据库中执行操作(包括调用其他过程)的编程语句。

  • 向调用过程或批处理返回状态值,以指明成功或失败(以及失败的原因)。

注意

有关 SQL Server 存储过程的详细信息,请参阅 SQL Server 联机丛书中的“了解存储过程”。

为了使用存储过程来处理 SQL Server 数据库中的数据,Microsoft JDBC Driver for SQL Server 提供了 SQLServerStatementSQLServerPreparedStatementSQLServerCallableStatement 类。 要使用那个类取决于存储过程是否需要 IN(输入)或 OUT(输出)参数。 如果存储过程不需要 IN 和 OUT 参数,则可以使用 SQLServerStatement 类;如果要多次调用存储过程或仅需要 IN 参数,则可以使用 SQLServerPreparedStatement 类。 如果存储过程同时需要 IN 和 OUT 参数,则应使用 SQLServerCallableStatement 类。 只有在存储过程仅需要 OUT 参数时,才应使用 SQLServerCallableStatement 类。

注意

存储过程还可以返回更新计数和多个结果集。 有关详细信息,请参阅使用带有更新计数的存储过程使用多个结果集

使用 JDBC 驱动程序调用带参数的存储过程时,必须结合 SQLServerConnection 类的 prepareCall 方法使用 call SQL 转义序列。 call 转义序列的完整语法如下:

{[?=]call procedure-name[([parameter][,[parameter]]...)]}

注意

有关call 和其他 SQL 转义序列的详细信息,请参阅使用 SQL 转义序列

本部分中的主题说明使用 JDBC 驱动程序和 call SQL 转义序列调用 SQL Server 存储过程的可用方法。

在本节中

主题 说明
使用不含参数的存储过程 说明如何使用 JDBC 驱动程序运行不包含输入或输出参数的存储过程。
使用含输入参数的存储过程 说明如何使用 JDBC 驱动程序运行包含输入参数的存储过程。
使用含输出参数的存储过程 说明如何使用 JDBC 驱动程序运行包含输出参数的存储过程。
使用含返回状态的存储过程 说明如何使用 JDBC 驱动程序运行包含返回状态值的存储过程。
使用含更新计数的存储过程 说明如何使用 JDBC 驱动程序运行返回更新计数的存储过程。

另请参阅

通过 JDBC 驱动程序使用语句