`
jiaguwen123
  • 浏览: 413547 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

CallableStatement详解

阅读更多
CallableStatement 用于执行 SQL 存储过程。


JDBC 提供了一个存储过程 SQL escape,它允许以所有 RDBMS 的标准方式调用存储过程。该 escape 语法具有一个包含结果参数的格式和一个不包含结果参数的格式。如果使用结果参数,它必须被注册为一个 OUT 参数。其它的参数可以用于输入、输出或同时用于两者。参数通过编号被顺序的引用。第一个参数是 1。



{?= call [,, ...]}

{call [,, ...]}



用从 PreparedStatement 继承的设置方法设置 IN 参数。所有 OUT 参数的类型必须在执行该存储过程之前注册;执行后的参数值用该类提供的
get 方法获得。


Callable 语句可能返回一个 ResultSet 或多个 ResultSet。多
ResultSets 由从 Statement 继承的操作处理。


为了最大的限度的可移植性,调用的 ResultSet 和修改次数必须在获得输出参数值之前处理。




接口 java.sql.CallableStatement





public interface CallableStatement

extends PreparedStatement





 
参见:
 
prepareCall, ResultSet



--------------------------------------------------------------------------------




方法索引





getBigDecimal(int, int)


获得一个 NUMERIC 参数的值,作为一个 java.math.BigDecimal 对象。

getBoolean(int)

获得一个 BIT 参数的值,作为一个 Java boolean。

getByte(int)

获得一个 TINYINT 参数的值,作为一个 Java byte。

getBytes(int)

获得一个 SQL BINARY 或 VARBINARY 参数的值,作为一个 Java byte []。

getDate(int)

获得一个 SQL DATE 参数的值,作为一个 java.sql.Date 对象。

getDouble(int)

获得一个 DOUBLE 参数的值,作为一个 Java double。

getFloat(int)

获得一个 FLOAT 参数的值,作为一个 Java float。

getInt(int)

获得一个 INTEGER 参数的值,作为一个 Java int。

getLong(int)

获得一个 BIGINT 参数的值,作为一个 Java long。

getObject(int)

获得一个参数的值,作为一个 Java object。

getShort(int)

获得一个 SMALLINT 参数的值,作为一个 Java short。

getString(int)

获得一个 CHAR、VARCHAR 或 LONGVARCHAR 参数的值,作为一个
Java String。

getTime(int)

获得一个 SQL TIME 参数的值,作为一个 java.sql.Time 对象。

getTimestamp(int)

获得一个 SQL TIMESTAMP 参数的值,作为一个 java.sql.Timestamp 对象。

registerOutParameter(int, int)

在执行存储过程调用之前,必须显式的调用 registerOutParameter
为每个输出参数的 java.sql.Type 进行注册。

registerOutParameter(int, int, int)

使用 registerOutParameter 的这个版本为 Numeric 或 Decimal
输出参数注册。

wasNull()

一个 OUT 参数可能的值是 SQL NULL ;wasNull 报告最后读的值是否为这个特殊的值。




--------------------------------------------------------------------------------


方法



registerOutParameter

public abstract void registerOutParameter(int parameterIndex,                              int sqlType) throws SQLException




在执行存储过程调用之前,必须显式的调用 registerOutParameter
为每个输出参数的 java.sql.Type 进行注册。

注意: 当读取一个输出参数的值时,必须使用 getXXX 方法,它的 Java 类型 XXX 与该参数注册的 SQL 类型相应。






 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
sqlType - 由 java.sql.Types 决定的 SQL 类型代码;对于
Numeric 或 Decimal 类型的参数使用可以接受小数位数的
registerOutParameter 版本。

抛出:
SQLException
 
如果发生了数据访问错误。
 
参见:
 
Type





registerOutParameter

public abstract void registerOutParameter(int parameterIndex,                                           int sqlType,                                          int scale) throws SQLException




使用 registerOutParameter 的这个版本为 Numeric 或 Decimal
输出参数注册。

注意: 当读取一个输出参数的值时,必须使用 getXXX 方法,它的 Java 类型 XXX 与该参数注册的 SQL 类型相应。






 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
sqlType - 使用 java.sql.Type.NUMERIC 或 java.sql.Type.DECIMAL
 
scale - 一个大于等于零的值,表示期望的小数点右边数字的数目
 
抛出:
SQLException
 
如果发生了数据访问错误。
 
参见:
 
Type





wasNull

public abstract boolean wasNull() throws SQLException




一个 OUT 参数可能的值是 SQL NULL ;wasNull 报告最后读的值是否为这个特殊的值。

注意:必须首先对一个参数调用 getXXX 方法读取它的值,然后调用
wasNull() 方法检查该值是否为 SQL NULL。






 
返回值:
 
如果读的最后的参数为 SQL NULL 则为 true
 
抛出:
SQLException
 
如果发生了数据访问错误。





getString

public abstract String getString(int parameterIndex) throws SQLException




获得一个 CHAR、VARCHAR 或 LONGVARCHAR 参数的值,作为一个
Java String。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 null
 
抛出:
SQLException
 
如果发生了数据访问错误。





getBoolean

public abstract boolean getBoolean(int parameterIndex) throws SQLException




获得一个 BIT 参数的值,作为一个 Java boolean。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 false
 
抛出:
SQLException
 
如果发生了数据访问错误。





getByte

public abstract byte getByte(int parameterIndex) throws SQLException




获得一个 TINYINT 参数的值,作为一个 Java byte。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 0
 
抛出:
SQLException
 
如果发生了数据访问错误。





getShort

public abstract short getShort(int parameterIndex) throws SQLException




获得一个 SMALLINT 参数的值,作为一个 Java short。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 0
 
抛出:
SQLException
 
如果发生了数据访问错误。





getInt

public abstract int getInt(int parameterIndex) throws SQLException




获得一个 INTEGER 参数的值,作为一个 Java int。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 0
 
抛出:
SQLException
 
如果发生了数据访问错误。





getLong

public abstract long getLong(int parameterIndex) throws SQLException




获得一个 BIGINT 参数的值,作为一个 Java long。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 0
 
抛出:
SQLException
 
如果发生了数据访问错误。





getFloat

public abstract float getFloat(int parameterIndex) throws SQLException




获得一个 FLOAT 参数的值,作为一个 Java float。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 0
 
抛出:
SQLException
 
如果发生了数据访问错误。





getDouble

public abstract double getDouble(int parameterIndex) throws SQLException




获得一个 DOUBLE 参数的值,作为一个 Java double。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 0
 
抛出:
SQLException
 
如果发生了数据访问错误。





getBigDecimal

public abstract BigDecimal getBigDecimal(int parameterIndex,                                          int scale) throws SQLException




获得一个 NUMERIC 参数的值,作为一个 java.math.BigDecimal 对象。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
scale - 一个大于等于零的值,表示期望的小数点右边数字的数目
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 null
 
抛出:
SQLException
 
如果发生了数据访问错误。





getBytes

public abstract byte[] getBytes(int parameterIndex) throws SQLException




获得一个 SQL BINARY 或 VARBINARY 参数的值,作为一个 Java byte []。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 null
 
抛出:
SQLException
 
如果发生了数据访问错误。





getDate

public abstract Date getDate(int parameterIndex) throws SQLException




获得一个 SQL DATE 参数的值,作为一个 java.sql.Date 对象。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 null
 
抛出:
SQLException
 
如果发生了数据访问错误。





getTime

public abstract Time getTime(int parameterIndex) throws SQLException




获得一个 SQL TIME 参数的值,作为一个 java.sql.Time 对象。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 null
 
抛出:
SQLException
 
如果发生了数据访问错误。





getTimestamp

public abstract Timestamp getTimestamp(int parameterIndex) throws SQLException




获得一个 SQL TIMESTAMP 参数的值,作为一个 java.sql.Timestamp 对象。





 
参数:
 
parameterIndex - 第一个参数是 1, 第二个是 2, ...
 
返回值:
 
参数值;如果该值是 SQL NULL 则结果为 null
 
抛出:
SQLException
 
如果发生了数据访问错误。





getObject

public abstract Object getObject(int parameterIndex) throws SQLException




获得一个参数的值,作为一个 Java object。

该方法返回一个 Java 对象,它的类型与用 SQL 类型相应,该 SQL 类型是用
registerOutParameter 为该参数注册的类型。


注意该方法可以用于读数据库特定的抽象数据类型。 可以指定一个
java.sql.types.OTHER 的 targetSqlType 进行读取,该类型允许驱动程序返回一个数据库特定的 Java 类型。






 
参数:
 
parameterIndex - 第一个参数是 1, 第二个参数是 2, ...
 
返回值:
 
保持该 OUT 参数值的 java.lang.Object。
 
抛出:
SQLException
 
如果发生了数据访问错误。
 
参见:
 
Types
分享到:
评论

相关推荐

    JDBC基础教程之CallableStatement.doc

    ### JDBC基础教程之CallableStatement详解 #### 一、概述 在数据库编程中,为了提高代码的复用性和执行效率,通常会使用存储过程。存储过程是预编译并存储在数据库中的SQL语句集合,可以接受输入参数并返回输出...

    callablestatement

    ### 可调用语句(CallableStatement)与存储过程应用详解 #### 一、概述 在Java编程中,处理数据库操作时,`CallableStatement`是一个非常重要的接口,它继承自`PreparedStatement`,专门用于调用数据库中的存储...

    JDBC-Student.rar_callablestatement_dbtoobject_java 学员 管理 系统_jdbc

    **JDBC-学生管理系统详解** 本项目是一个基于Java的学员管理系统,主要展示了JDBC(Java Database Connectivity)在实际应用中的高级特性和用法。通过这个系统,我们可以学习如何利用JDBC进行数据库操作,如数据...

    JSP与JDBC应用详解

    3. **Statement/PreparedStatement/CallableStatement**:用于执行SQL语句,其中PreparedStatement预编译SQL,提升性能且防止SQL注入。 4. **ResultSet**:存储查询结果,提供遍历查询结果的方法。 5. **...

    Java调用SQL存储过程详解.docx

    Java通过`CallableStatement`接口提供了调用存储过程的功能,使其能够适应不同的数据库管理系统(DBMS)。下面将详细解释如何使用`CallableStatement`以及相关的步骤和方法。 首先,了解`CallableStatement`对象的...

    jdbc桥技术详解,例子详解

    【JDBC桥技术详解】 Java Database Connectivity (JDBC) 是Java平台中用于访问数据库的标准应用程序接口,它使得Java开发者能够连接和操作各种数据库系统。JDBC桥技术是JDBC的一个重要组成部分,它允许Java应用程序...

    Java开发详解.zip

    031710_【第17章:Java数据库编程】_CallableStatement接口笔记.pdf 031711_【第17章:Java数据库编程】_JDBC 2.0操作笔记.pdf 031712_【第17章:Java数据库编程】_事务处理笔记.pdf 031713_【第17章:Java数据库...

    JDBC连接操作Oracle及Mysql详解

    6. **带参数的存储过程**: 调用存储过程可以通过CallableStatement对象实现。例如,`CallableStatement cs = connection.prepareCall("{call some_proc(?, ?)}");`,然后设置输入和输出参数。 7. **事务处理**: ...

    Java数据库技术详解 DOC简版

    6.2 CallableStatement存储过程对象 6.3 BatchedUpdate对象 6.4 Rowset行集合对象 6.5 JDBC的事务 6.6 本章小结 第7章 JDBC结合Servlet与JSP 的应用 7.1 Servlet概述 7.2 JDBC在Servlet中的使用 7.3...

    JDBC详解.docx

    JDBC(Java Database Connectivity)是Java编程语言中用于与各种...开发者可以根据具体需求选择使用`Statement`、`PreparedStatement`或`CallableStatement`,以及相应的事务控制策略,以确保数据的安全性和一致性。

    Java实现调用MySQL存储过程详解

    1. **导入必要的库**:在Java源文件中,导入JDBC相关的库,通常是`java.sql.*`,这包括`Connection`、`Statement`、`CallableStatement`等接口。 ```java import java.sql.Connection; import java.sql....

    jdbc基础的详解与总结

    "jdbc 基础的详解与总结" jdbc 是一套协议,由 Sun 公司定义的一组接口,由数据库厂商来实现,并规定了 Java 开发人员访问数据库所使用的方法的调用规范。jdbc 的实现是由数据库厂商提供,以驱动程序形式提供。jdbc...

    JDBC技术全面详解

    **JDBC技术全面详解** Java Database Connectivity(JDBC)是Java编程语言中用来规范客户端程序如何访问数据库的应用程序接口(API),它为开发者提供了一种标准的方法,使得使用Java可以连接到各种不同的数据库...

    在Java中调用存储过程详解

    3. 创建Statement或PreparedStatement对象:通常,调用存储过程需要使用`CallableStatement`对象,因为它专门用于处理数据库的存储过程调用。 4. 预编译SQL:通过`CallableStatement`的`prepareCall()`方法,传入...

    JDBC操作数据库详解

    **JDBC操作数据库详解** Java Database Connectivity(JDBC)是Java平台中用于与关系数据库进行交互的一种标准接口。它是Java编程语言的一部分,允许应用程序通过Java代码来访问和处理数据库。本教程将深入讲解JDBC...

    JAVA存储过程详解

    ### JAVA存储过程详解 在Java开发中,存储过程是一种预编译并存储在数据库中的SQL脚本或程序,它可以接收参数、执行复杂的逻辑,并返回结果。利用Java来调用存储过程,可以极大地提高应用程序的性能和安全性。下面...

    oracle_存储过程详解

    - 有返回值的非列表存储过程:设置输出参数,通过`CallableStatement`的`registerOutParameter()`,然后调用`execute()`,最后获取返回值。 - 返回列表的存储过程:通常涉及游标,需要设置输出参数为游标类型,...

    JAVA调用存储过程

    ### JAVA调用存储过程知识点详解 #### 一、无结果集返回的存储过程调用 在Java中调用不返回结果集的存储过程时,主要使用`CallableStatement`对象配合预定义的SQL语法来实现。这里以SQL Server 2000数据库为例,并...

    JDBC的概述及入门案例,API详解

    - **CallableStatement**:用于执行存储过程。 **总结** 通过本文的学习,您应该能够理解JDBC的基本概念、工作原理及其核心API的使用方法。接下来您可以尝试独立完成JDBC的入门案例,进一步熟悉如何使用JDBC进行...

Global site tag (gtag.js) - Google Analytics