精华内容
参与话题
问答
  • CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement对象所含的内容。这种调用是用一种换码语法来写的,有两种...

    CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement对象所含的内容。这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参,另一种形式不带结果参数。结果参数是一种输出 (OUT) 参数,是已储存过程的返回值。两种形式都可带有数量可变的输入(IN 参数)、输出(OUT 参数)或输入和输出(INOUT 参数)的参数。问号将用作参数的占位符。

    在 JDBC 中调用已储存过程的语法如下所示。注意,方括号表示其间的内容是可选项;方括号本身并不是语法的组成部份。

         

    {call 过程名[(?, ?, ...)]}
    返回结果参数的过程的语法为:

    {? = call 过程名[(?, ?, ...)]}

    不带参数的已储存过程的语法类似:

    {call 过程名}

    通常,创建 CallableStatement 对象的人应当知道所用的 DBMS 是支持已储存过程的,并且知道这些过程都是些什么。然而,如果需要检查,多种DatabaseMetaData 方法都可以提供这样的信息。例如,如果 DBMS 支持已储存过程的调用,则supportsStoredProcedures 方法将返回 true,而getProcedures 方法将返回对已储存过程的描述。CallableStatement 继承 Statement 的方法(它们用于处理一般的 SQL 语句),还继承了 PreparedStatement 的方法(它们用于处理 IN 参)。

    CallableStatement 中定义的所有方法都用于处理 OUT 参数或 INOUT 参数的输出部分:注册 OUT 参数的 JDBC 类型(一般 SQL 类型)、从这些参数中检索结果,或者检查所返回的值是否为 JDBC NULL。

    1、创建 CallableStatement 对象

      CallableStatement 对象是用 Connection 方法 prepareCall 创建的。下例创建 CallableStatement 的实例,其中含有对已储存过程 getTestData 调用。该过程有两个变量,但不含结果参数:

    CallableStatement cstmt = con.prepareCall("{call getTestData(?, ?)}");

      其中?占位符为IN、OUT还是INOUT参数,取决于已储存过程getTestData。

    2、IN和OUT参数

      将IN参数传给 CallableStatement 对象是通过 setXXX 方法完成的。该方法继承自 PreparedStatement。所传入参数的类型决定了所用的setXXX方法(例如,用 setFloat 来传入 float 值等)。

      如果已储存过程返回 OUT 参数,则在执行 CallableStatement 对象以前必须先注册每个 OUT 参数的 JDBC 类型(这是必需的,因为某些 DBMS 要求 JDBC 类型)。注册 JDBC 类型是用 registerOutParameter 方法来完成的。语句执行完后,CallableStatement 的 getXXX 方法将取回参数值。正确的 getXXX 方法是为各参数所注册的 JDBC 类型所对应的 Java 类型。换言之, registerOutParameter 使用的是 JDBC 类型(因此它与数据库返回的 JDBC 类型匹配),而 getXXX 将之转换为 Java 类型。

      作为示例,下述代码先注册 OUT 参数,执行由 cstmt 所调用的已储存过程,然后检索在 OUT 参数中返回的值。方法 getByte 从第一个 OUT 参数中取出一个 Java 字节,而 getBigDecimal 从第二个 OUT 参数中取出一个 BigDecimal 对象(小数点后面带三位数):

    CallableStatement cstmt = con.prepareCall("{call getTestData(?, ?)}");
    cstmt.registerOutParameter(1, java.sql.Types.TINYINT);
    cstmt.registerOutParameter(2, java.sql.Types.DECIMAL, 3);
    cstmt.executeQuery();
    byte x = cstmt.getByte(1);
    java.math.BigDecimal n = cstmt.getBigDecimal(2, 3);

      CallableStatement 与 ResultSet 不同,它不提供用增量方式检索大 OUT 值的特殊机制。

    3、INOUT参数

      既支持输入又接受输出的参数(INOUT 参数)除了调用 registerOutParameter 方法外,还要求调用适当的 setXXX 方法(该方法是从 PreparedStatement 继承来的)。setXXX 方法将参数值设置为输入参数,而 registerOutParameter 方法将它的 JDBC 类型注册为输出参数。setXXX 方法提供一个 Java 值,而驱动程序先把这个值转换为 JDBC 值,然后将它送到数据库中。这种 IN 值的 JDBC 类型和提供给 registerOutParameter 方法的 JDBC 类型应该相同。然后,要检索输出值,就要用对应的 getXXX 方法。例如,Java 类型为byte 的参数应该使用方法 setByte 来赋输入值。应该给registerOutParameter 提供类型为 TINYINT 的 JDBC 类型,同时应使用 getByte 来检索输出值。

      下例假设有一个已储存过程 reviseTotal,其唯一参数是 INOUT 参数。方法setByte 把此参数设为 25,驱动程序将把它作为 JDBC TINYINT 类型送到数据库中。接着,registerOutParameter 将该参数注册为 JDBC TINYINT。执行完该已储存过程后,将返回一个新的 JDBC TINYINT 值。方法 getByte 将把这个新值作为 Java byte 类型检索。

    CallableStatement cstmt = con.prepareCall("{call reviseTotal(?)}");
    cstmt.setByte(1, 25);
    cstmt.registerOutParameter(1, java.sql.Types.TINYINT);
    cstmt.executeUpdate();
    byte x = cstmt.getByte(1);

      4、先检索结果,再检索 OUT 参数

    由于某些 DBMS 的限制,为了实现最大的可移植性,建议先检索由执行CallableStatement 对象所产生的结果,然后再用 CallableStatement.getXXX 方法来检索 OUT 参数。如果 CallableStatement 对象返回多个 ResultSet 对象(通过调用 execute 方法),在检索 OUT 参数前应先检索所有的结果。这种情况下,为确保对所有的结果都进行了访问,必须对 Statement 方法 getResultSet、getUpdateCount 和getMoreResults 进行调用,直到不再有结果为止。

      检索完所有的结果后,就可用 CallableStatement.getXXX 方法来检索 OUT 参数中的值。

      5、检索作为OUT参数的NULL值

      返回到 OUT 参数中的值可能会是JDBC NULL。当出现这种情形时,将对 JDBC NULL 值进行转换以使 getXXX 方法所返回的值为 null、0 或 false,这取决于getXXX 方法类型。对于 ResultSet 对象,要知道0或false是否源于JDBCNULL的唯一方法,是用方法wasNull进行检测。如果 getXXX 方法读取的最后一个值是 JDBC NULL,则该方法返回 true,否则返回 flase。


    列举案例:(java程序调用存储过程)

    try{
    //1、加载驱动
    Class.forName("oracle.jdbc.driver.OracleDriver");
    //2、得到连接
    Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "a2Da2D");
    //3、创建CallableStatement
    CallableStatement cs = ct.prepareCall("{call sp_pro(?,?)}");
    //4、给?赋值
    cs.setString(1, "SMITH");
    cs.setInt(2, 10);
    //5、执行
    cs.execute();
    //6、关闭
    cs.close();
    ct.close();

    }catch(Exception e){
    e.printStackTrace();
    }





    展开全文
  • CallableStatement 接口

    千次阅读 2017-09-07 11:40:00
    1.8 api详细介绍Interface CallableStatementpublic interface CallableStatement extends PreparedStatement用于执行SQL存储过程的界面。 JDBC API提供了存储过程SQL转义语法,允许以标准方式为所有RDBMS调用存储...

    1.8 api详细介绍Interface CallableStatement

    public interface CallableStatement
    extends PreparedStatement
    
    用于执行SQL存储过程的界面。 JDBC API提供了存储过程SQL转义语法,允许以标准方式为所有RDBMS调用存储过程。 此转义语法包含一个结果参数和不包含结果参数的表单。 如果使用,结果参数必须注册为OUT参数。 其他参数可用于输入,输出或两者。 参数按顺序依次引用,第一个参数为1。
      {?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
       {call <procedure-name>[(<arg1>,<arg2>, ...)]} 
    IN参数值使用从PreparedStatement继承的set方法设置。 所有OUT参数的类型必须在执行存储过程之前进行注册; 它们的值通过这里提供的get方法在执行get 。
    A CallableStatement可以返回一个ResultSet对象或多个ResultSet对象。 多个ResultSet对象使用从Statement ResultSet操作来处理。
    为获得最大的便携性,应在处理输出参数值之前处理一个电话ResultSet对象和更新计数。
    
    
    
    方法详细信息介绍:
    
    registerOutParameter
    void registerOutParameter(int parameterIndex,
                              int sqlType)
                       throws SQLException
    将序号parameterIndex中的OUT参数parameterIndex到JDBC类型sqlType 。 所有OUT参数必须在执行存储过程之前进行注册。
    sqlType为OUT参数指定的JDBC类型决定了在get方法中必须使用的Java类型,以读取该参数的值。
    
    如果希望返回到此输出参数的JDBC类型是特定于该特定数据库的, sqlType应为java.sql.Types.OTHER 。 方法getObject(int)检索该值。
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    sqlType - 由java.sql.Types定义的JDBC类型代码。 如果参数是JDBC类型NUMERIC或DECIMAL ,则应该使用接受比例值的registerOutParameter版本。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException -如果 sqlType是 ARRAY , BLOB , CLOB , DATALINK , JAVA_OBJECT , NCHAR , NCLOB , NVARCHAR , LONGNVARCHAR , REF , ROWID , SQLXML或 STRUCT数据类型和JDBC驱动程序不支持此数据类型
    另请参见:
    Types
    registerOutParameter
    void registerOutParameter(int parameterIndex,
                              int sqlType,
                              int scale)
                       throws SQLException
    将序号parameterIndex为JDBC类型sqlType 。 所有OUT参数必须在执行存储过程之前进行注册。
    用于OUT参数的由sqlType的JDBC类型确定了get方法中必须使用的Java类型以读取该参数的值。
    
    这个版本registerOutParameter当参数是JDBC类型应使用NUMERIC或DECIMAL 。
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    sqlType - 由 java.sql.Types定义的SQL类型代码。
    scale - 小数点右侧所需的数字位数。 它必须大于或等于零。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException -如果 sqlType是 ARRAY , BLOB , CLOB , DATALINK , JAVA_OBJECT , NCHAR , NCLOB , NVARCHAR , LONGNVARCHAR , REF , ROWID , SQLXML或 STRUCT数据类型和JDBC驱动程序不支持此数据类型
    另请参见:
    Types
    wasNull
    boolean wasNull()
             throws SQLException
    检索读取的最后一个OUT参数的值是否为NULL 。 请注意,此方法只能在调用getter方法后调用; 否则,在确定是否为null时没有使用价值。
    结果
    true如果最后一个参数读取为SQL NULL ; false否则
    异常
    SQLException - 如果发生数据库访问错误或此方法在关闭的 CallableStatement
    getString
    String getString(int parameterIndex)
              throws SQLException
    获取指定的JDBC值CHAR , VARCHAR ,或LONGVARCHAR参数为String的Java编程语言。
    对于固定长度类型的JDBC CHAR ,返回的String对象与SQL CHAR值在数据库中具有完全相同的值,包括数据库添加的任何填充。
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setString(java.lang.String, java.lang.String)
    getBoolean
    boolean getBoolean(int parameterIndex)
                throws SQLException
    获取指定的JDBC的值 BIT或 BOOLEAN作为参数 boolean Java编程语言。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为false 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setBoolean(java.lang.String, boolean)
    getByte
    byte getByte(int parameterIndex)
          throws SQLException
    获取指定的JDBC的价值 TINYINT参数为 byte的Java编程语言。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setByte(java.lang.String, byte)
    getShort
    short getShort(int parameterIndex)
            throws SQLException
    获取指定的JDBC的价值 SMALLINT参数为 short的Java编程语言。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setShort(java.lang.String, short)
    getInt
    int getInt(int parameterIndex)
        throws SQLException
    获取指定的JDBC的价值 INTEGER作为参数 int Java编程语言。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setInt(java.lang.String, int)
    getLong
    long getLong(int parameterIndex)
          throws SQLException
    获取指定的JDBC的价值 BIGINT参数为 long的Java编程语言。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setLong(java.lang.String, long)
    getFloat
    float getFloat(int parameterIndex)
            throws SQLException
    获取指定的JDBC的价值 FLOAT参数为 float的Java编程语言。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setFloat(java.lang.String, float)
    getDouble
    double getDouble(int parameterIndex)
              throws SQLException
    获取指定的JDBC的价值 DOUBLE参数为 double的Java编程语言。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setDouble(java.lang.String, double)
    getBigDecimal
    @Deprecated
    BigDecimal getBigDecimal(int parameterIndex,
                                         int scale)
                                  throws SQLException
    已弃用 使用getBigDecimal(int parameterIndex)或getBigDecimal(String parameterName)
    将指定的JDBC NUMERIC参数的值检索为 java.math.BigDecimal对象,其小数点右侧的 比例数字。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    scale - 小数点右侧的位数
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    另请参见:
    setBigDecimal(java.lang.String, java.math.BigDecimal)
    getBytes
    byte[] getBytes(int parameterIndex)
             throws SQLException
    将指定的JDBC BINARY或 VARBINARY参数的值作为Java编程语言中的 byte值的数组检索。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setBytes(java.lang.String, byte[])
    getDate
    Date getDate(int parameterIndex)
          throws SQLException
    将指定的JDBC DATE参数的值检索为 java.sql.Date对象。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setDate(java.lang.String, java.sql.Date)
    getTime
    Time getTime(int parameterIndex)
          throws SQLException
    将指定的JDBC TIME参数的值检索为 java.sql.Time对象。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setTime(java.lang.String, java.sql.Time)
    getTimestamp
    Timestamp getTimestamp(int parameterIndex)
                    throws SQLException
    将指定的JDBC TIMESTAMP参数的值检索为 java.sql.Timestamp对象。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    setTimestamp(java.lang.String, java.sql.Timestamp)
    getObject
    Object getObject(int parameterIndex)
              throws SQLException
    检索作为指定参数的值Object Java编程语言。 如果该值为SQL NULL ,则驱动程序返回Java null 。
    此方法返回一个Java对象,该对象的类型与使用方法registerOutParameter为该参数注册的JDBC类型registerOutParameter 。 通过将目标JDBC类型注册为java.sql.Types.OTHER ,此方法可用于读取数据库特定的抽象数据类型。
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    A java.lang.Object保存OUT参数值
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    另请参见:
    Types , setObject(java.lang.String, java.lang.Object, int, int)
    getBigDecimal
    BigDecimal getBigDecimal(int parameterIndex)
                      throws SQLException
    将指定的JDBC NUMERIC参数的值检索为 java.math.BigDecimal对象,其值包含小数点右侧的数字。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值全精度。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    从以下版本开始:
    1.2
    另请参见:
    setBigDecimal(java.lang.String, java.math.BigDecimal)
    getObject
    Object getObject(int parameterIndex,
                     Map<String,类<?>> map)
              throws SQLException
    返回一个表示OUT参数的值的对象, parameterIndex和使用map用于该参数值的自定义映射。
    此方法返回一个Java对象,该对象的类型与使用方法registerOutParameter为此参数注册的JDBC类型registerOutParameter 。 通过将目标JDBC类型注册为java.sql.Types.OTHER ,此方法可用于读取数据库特定的抽象数据类型。
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    map - 从SQL类型名称到Java类的映射
    结果
    一个 java.lang.Object保存OUT参数值
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.2
    另请参见:
    setObject(java.lang.String, java.lang.Object, int, int)
    getRef
    Ref getRef(int parameterIndex)
        throws SQLException
    将指定的JDBC REF(<structured-type>)参数的值作为Java编程语言中的Ref对象检索。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    该参数值作为Java编程语言中的一个Ref对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.2
    getBlob
    Blob getBlob(int parameterIndex)
          throws SQLException
    以Java编程语言的形式获取指定的JDBC BLOB参数的值作为Blob对象。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值为Java编程语言中的Blob对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.2
    getClob
    Clob getClob(int parameterIndex)
          throws SQLException
    以Java编程语言的形式获取指定的JDBC CLOB参数的值作为 java.sql.Clob对象。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    参数值作为Java编程语言中的Clob对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.2
    getArray
    Array getArray(int parameterIndex)
            throws SQLException
    以Java编程语言中的Array对象获取指定的JDBC ARRAY参数的值。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    该参数值作为Java编程语言中的一个Array对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.2
    getDate
    Date getDate(int parameterIndex,
                 Calendar cal)
          throws SQLException
    将指定的JDBC DATE参数的值检索为java.sql.Date对象,使用给定的Calendar对象构造日期。 使用Calendar对象,驱动程序可以计算考虑到自定义时区和区域设置的日期。 如果未Calendar对象,则驱动程序将使用默认的时区和区域设置。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    cal - 驱动程序将用于构建日期的 Calendar对象
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    从以下版本开始:
    1.2
    另请参见:
    setDate(java.lang.String, java.sql.Date)
    getTime
    Time getTime(int parameterIndex,
                 Calendar cal)
          throws SQLException
    将指定的JDBC TIME参数的值检索为java.sql.Time对象,使用给定的Calendar对象构建时间。 使用Calendar对象,驱动程序可以计算考虑到自定义时区和区域设置的时间。 如果未Calendar对象,则驱动程序将使用默认时区和区域设置。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    cal - 驱动程序将用于构建时间的 Calendar对象
    结果
    参数值 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    从以下版本开始:
    1.2
    另请参见:
    setTime(java.lang.String, java.sql.Time)
    getTimestamp
    Timestamp getTimestamp(int parameterIndex,
                           Calendar cal)
                    throws SQLException
    将指定的JDBC TIMESTAMP参数的值检索为java.sql.Timestamp对象,使用给定的Calendar对象构造Timestamp对象。 使用Calendar对象,驱动程序可以计算考虑到自定义时区和区域设置的时间戳。 如果未Calendar对象,则驱动程序将使用默认的时区和区域设置。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    cal -在 Calendar对象的驱动程序将用来构造时间戳
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    从以下版本开始:
    1.2
    另请参见:
    setTimestamp(java.lang.String, java.sql.Timestamp)
    registerOutParameter
    void registerOutParameter(int parameterIndex,
                              int sqlType,
                              String typeName)
                       throws SQLException
    注册指定的输出参数。 方法registerOutParameter这个版本应该用于用户定义的或REF输出参数。 的用户定义类型的实例包括: STRUCT , DISTINCT , JAVA_OBJECT ,和指定数组类型。
    所有OUT参数必须在执行存储过程之前进行注册。
    
    对于用户定义的参数,也应该给出参数的完全限定的SQL类型名称,而REF参数要求给出引用类型的全限定类型名称。 不需要类型代码和类型名称信息的JDBC驱动程序可能会忽略它。 然而,为了便于携带,应用程序应始终为用户定义和REF参数提供这些值。 虽然它是用于用户定义的和REF参数,但是该方法可以用于注册任何JDBC类型的参数。 如果该参数不具有用户定义或REF类型,则typeName参数将被忽略。
    
    注意:读取out参数的值时,必须使用Java类型对应于参数的注册SQL类型的getter方法。
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,...
    sqlType - 一个值来自Types
    typeName - SQL结构化类型的全限定名称
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException -如果 sqlType是 ARRAY , BLOB , CLOB , DATALINK , JAVA_OBJECT , NCHAR , NCLOB , NVARCHAR , LONGNVARCHAR , REF , ROWID , SQLXML或 STRUCT数据类型和JDBC驱动程序不支持此数据类型
    从以下版本开始:
    1.2
    另请参见:
    Types
    registerOutParameter
    void registerOutParameter(String parameterName,
                              int sqlType)
                       throws SQLException
    将名为parameterName的OUT参数parameterName到JDBC类型sqlType 。 所有OUT参数必须在执行存储过程之前进行注册。
    sqlType为OUT参数指定的JDBC类型决定了get方法中必须使用的Java类型,以读取该参数的值。
    
    如果希望返回到此输出参数的JDBC类型是特定于该特定数据库的, sqlType应为java.sql.Types.OTHER 。 方法getObject(int)检索该值。
    
    参数
    parameterName - 参数的名称
    sqlType - 由java.sql.Types定义的JDBC类型代码。 如果参数是JDBC类型NUMERIC或DECIMAL , registerOutParameter使用接受比例值的registerOutParameter版本。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException -如果 sqlType是 ARRAY , BLOB , CLOB , DATALINK , JAVA_OBJECT , NCHAR , NCLOB , NVARCHAR , LONGNVARCHAR , REF , ROWID , SQLXML或 STRUCT数据类型和JDBC驱动程序不支持此数据类型,或者JDBC驱动程序不支持这种方法
    从以下版本开始:
    1.4
    另请参见:
    Types
    registerOutParameter
    void registerOutParameter(String parameterName,
                              int sqlType,
                              int scale)
                       throws SQLException
    注册命名的参数parameterName JDBC类型的sqlType 。 所有OUT参数必须在执行存储过程之前进行注册。
    通过指定JDBC类型sqlType为OUT参数确定必须在所使用的Java类型get方法来读取该参数的值。
    
    这个版本registerOutParameter当参数是JDBC类型应使用NUMERIC或DECIMAL 。
    
    参数
    parameterName - 参数的名称
    sqlType - 由 java.sql.Types定义的SQL类型代码。
    scale - 小数点右侧所需的数字位数。 它必须大于或等于零。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException -如果 sqlType是 ARRAY , BLOB , CLOB , DATALINK , JAVA_OBJECT , NCHAR , NCLOB , NVARCHAR , LONGNVARCHAR , REF , ROWID , SQLXML或 STRUCT数据类型和JDBC驱动程序不支持此数据类型,或者JDBC驱动程序不支持这种方法
    从以下版本开始:
    1.4
    另请参见:
    Types
    registerOutParameter
    void registerOutParameter(String parameterName,
                              int sqlType,
                              String typeName)
                       throws SQLException
    注册指定的输出参数。 此版本的方法registerOutParameter应用于用户名或REF输出参数。 用户命名类型的示例包括:STRUCT,DISTINCT,JAVA_OBJECT和命名的数组类型。
    所有OUT参数必须在执行存储过程之前进行注册。
    
    对于用户命名的参数,还应该给出参数的完全限定的SQL类型名称,而REF参数要求给定引用类型的完全限定类型名称。 不需要类型代码和类型名称信息的JDBC驱动程序可能会忽略它。 然而,为了便于携带,应用程序应始终为用户命名和REF参数提供这些值。 尽管它是用于用户命名的和REF参数的,但是该方法可以用于注册任何JDBC类型的参数。 如果该参数不具有用户名或REF类型,则将忽略typeName参数。
    
    注意:读取out参数的值时,必须使用Java类型XXX对应于参数的注册SQL类型的getXXX方法。
    
    参数
    parameterName - 参数的名称
    sqlType - 一个值来自Types
    typeName - SQL结构化类型的全限定名称
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException -如果 sqlType是 ARRAY , BLOB , CLOB , DATALINK , JAVA_OBJECT , NCHAR , NCLOB , NVARCHAR , LONGNVARCHAR , REF , ROWID , SQLXML或 STRUCT数据类型和JDBC驱动程序不支持此数据类型,或者JDBC驱动程序不支持这种方法
    从以下版本开始:
    1.4
    另请参见:
    Types
    getURL
    URL getURL(int parameterIndex)
        throws SQLException
    将指定的JDBC DATALINK参数的值检索为 java.net.URL对象。
    参数
    parameterIndex - 第一个参数是1,第二个是2,...
    结果
    一个 java.net.URL对象,表示用作指定参数的JDBC DATALINK值
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误,此方法在封闭的CallableStatement上调用,或者如果返回的URL不是Java平台上的有效URL
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setURL(java.lang.String, java.net.URL)
    setURL
    void setURL(String parameterName,
                URL val)
         throws SQLException
    将指定的参数设置为给定的java.net.URL对象。 当驱动程序将其发送到数据库时,将其转换为SQL DATALINK值。
    参数
    parameterName - 参数的名称
    val - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误; 该方法在封闭的CallableStatement上调用,或者网址格式错误
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getURL(int)
    setNull
    void setNull(String parameterName,
                 int sqlType)
          throws SQLException
    将指定的参数设置为SQL NULL 。
    注意:您必须指定参数的SQL类型。
    
    参数
    parameterName - 参数的名称
    sqlType - 在 java.sql.Types定义的SQL类型代码
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    setBoolean
    void setBoolean(String parameterName,
                    boolean x)
             throws SQLException
    将指定的参数设置为给定的Java boolean值。 当驱动程序将其发送到数据库时,将其转换为SQL BIT或BOOLEAN值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于命名参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getBoolean(int)
    setByte
    void setByte(String parameterName,
                 byte x)
          throws SQLException
    将指定的参数设置为给定的Java byte值。 当驱动程序将其发送到数据库时,将其转换为SQL TINYINT值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getByte(int)
    setShort
    void setShort(String parameterName,
                  short x)
           throws SQLException
    将指定的参数设置为给定的Java short值。 当驱动程序将其发送到数据库时,将其转换为SQL SMALLINT值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getShort(int)
    setInt
    void setInt(String parameterName,
                int x)
         throws SQLException
    将指定的参数设置为给定的Java int值。 当驱动程序将其发送到数据库时,将其转换为SQL INTEGER值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getInt(int)
    setLong
    void setLong(String parameterName,
                 long x)
          throws SQLException
    将指定的参数设置为给定的Java long值。 当驱动程序将其发送到数据库时,将其转换为SQL BIGINT值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于命名参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getLong(int)
    setFloat
    void setFloat(String parameterName,
                  float x)
           throws SQLException
    将指定的参数设置为给定的Java float值。 当驱动程序将其发送到数据库时,将其转换为SQL FLOAT值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getFloat(int)
    setDouble
    void setDouble(String parameterName,
                   double x)
            throws SQLException
    将指定的参数设置为给定的Java double值。 当驱动程序将其发送到数据库时,将其转换为SQL DOUBLE值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getDouble(int)
    setBigDecimal
    void setBigDecimal(String parameterName,
                       BigDecimal x)
                throws SQLException
    将指定的参数设置为给定的java.math.BigDecimal值。 当驱动程序将其发送到数据库时,将其转换为SQL NUMERIC值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getBigDecimal(int, int)
    setString
    void setString(String parameterName,
                   String x)
            throws SQLException
    将指定的参数设置为给定的Java String值。 当驱动程序将其发送到数据库时,将其转换为SQL VARCHAR或LONGVARCHAR值(取决于参数相对于VARCHAR值的驱动程序限制的大小)。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getString(int)
    setBytes
    void setBytes(String parameterName,
                  byte[] x)
           throws SQLException
    将指定的参数设置为给定的Java字节数组。 当驱动程序将其发送到数据库时,驱动程序将其转换为SQL VARBINARY或LONGVARBINARY (取决于参数相对于VARBINARY驱动程序的限制的大小)。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getBytes(int)
    setDate
    void setDate(String parameterName,
                 Date x)
          throws SQLException
    使用运行应用程序的虚拟机的默认时区将指定的java.sql.Date设置为给定的java.sql.Date值。 当驱动程序将其发送到数据库时,将其转换为SQL DATE值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getDate(int)
    setTime
    void setTime(String parameterName,
                 Time x)
          throws SQLException
    将指定的参数设置为给定的java.sql.Time值。 当驱动程序将其发送到数据库时,将其转换为SQL TIME值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getTime(int)
    setTimestamp
    void setTimestamp(String parameterName,
                      Timestamp x)
               throws SQLException
    将指定的参数设置为给定的java.sql.Timestamp值。 当驱动程序将其发送到数据库时将其转换为SQL TIMESTAMP值。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getTimestamp(int)
    setAsciiStream
    void setAsciiStream(String parameterName,
                        InputStream x,
                        int length)
                 throws SQLException
    将指定的参数设置为给定的输入流,它将具有指定的字节数。 当一个非常大的ASCII值输入到LONGVARCHAR参数时,通过java.io.InputStream发送它可能更java.io.InputStream 。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将从ASCII到数据库字符格式进行任何必要的转换。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    参数
    parameterName - 参数的名称
    x - 包含ASCII参数值的Java输入流
    length - 流中的字节数
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    setBinaryStream
    void setBinaryStream(String parameterName,
                         InputStream x,
                         int length)
                  throws SQLException
    将指定的参数设置为给定的输入流,它将具有指定的字节数。 当一个非常大的二进制值输入到LONGVARBINARY参数时,通过java.io.InputStream对象发送它可能更实用。 数据将根据需要从流中读取,直到达到文件结尾。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    参数
    parameterName - 参数的名称
    x - 包含二进制参数值的java输入流
    length - 流中的字节数
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    setObject
    void setObject(String parameterName,
                   Object x,
                   int targetSqlType,
                   int scale)
            throws SQLException
    使用给定对象设置指定参数的值。
    在发送给数据库之前,给定的Java对象将被转换为给定的targetSqlType。 如果对象具有自定义映射(是实现接口的类的SQLData ),JDBC驱动程序应该调用方法SQLData.writeSQL将其写入到SQL数据流。 如果,在另一方面,对象是实现一类Ref , Blob , Clob , NClob , Struct , java.net.URL ,或Array ,则驱动程序应当将它传递给数据库作为相应SQL类型的值。
    
    请注意,此方法可能用于传递特定于数据库的抽象数据类型。
    
    参数
    parameterName - 参数的名称
    x - 包含输入参数值的对象
    targetSqlType - 要发送到数据库的SQL类型(定义在java.sql.Types中)。 比例参数可能进一步限定此类型。
    scale - 对于java.sql.Types.DECIMAL或java.sql.Types.NUMERIC类型,这是小数点后的位数。 对于所有其他类型,此值将被忽略。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的targetSqlType
    从以下版本开始:
    1.4
    另请参见:
    Types , getObject(int)
    setObject
    void setObject(String parameterName,
                   Object x,
                   int targetSqlType)
            throws SQLException
    使用给定对象设置指定参数的值。 该方法类似于setObject(String parameterName, Object x, int targetSqlType, int scaleOrLength) ,除了它假定为零。
    参数
    parameterName - 参数的名称
    x - 包含输入参数值的对象
    targetSqlType - 要发送到数据库的SQL类型(在java.sql.Types中定义)
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的targetSqlType
    从以下版本开始:
    1.4
    另请参见:
    getObject(int)
    setObject
    void setObject(String parameterName,
                   Object x)
            throws SQLException
    使用给定对象设置指定参数的值。
    JDBC规范规定了从Java Object类型到SQL类型的标准映射。 在发送给数据库之前,给定的参数将被转换为相应的SQL类型。
    
    请注意,此方法可能通过使用特定于驱动程序的Java类型来传递特定于数据库的抽象数据类型。 如果对象是实现接口的类的SQLData ,JDBC驱动程序应该调用方法SQLData.writeSQL将它写入SQL数据流中。 如果,在另一方面,对象是实现一类Ref , Blob , Clob , NClob , Struct , java.net.URL ,或Array ,则驱动程序应当将它传递给数据库作为相应SQL类型的值。
    
    如果存在歧义,则此方法会引发异常,例如,如果对象是实现多个以上命名的接口的类。
    
    注意:并非所有数据库都允许将非类型的Null发送到后端。 为了最大可移植性,应使用setNull或setObject(String parameterName, Object x, int sqlType)方法代替setObject(String parameterName, Object x) 。
    
    参数
    parameterName - 参数的名称
    x - 包含输入参数值的对象
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误,则该方法在关闭的CallableStatement上调用,或者如果给定的Object参数不明确
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getObject(int)
    setCharacterStream
    void setCharacterStream(String parameterName,
                            Reader reader,
                            int length)
                     throws SQLException
    将指定的参数设置为给定的Reader对象,这是给定的长度的字符数。 当非常大的UNICODE值输入到LONGVARCHAR参数时,通过java.io.Reader对象发送它可能更实用。 数据将根据需要从流中读取,直到达到文件结尾。 JDBC驱动程序将从UNICODE到数据库字符格式进行任何必要的转换。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    参数
    parameterName - 参数的名称
    reader -所述 java.io.Reader包含用作指定参数的UNICODE数据对象
    length - 流中的字符数
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    setDate
    void setDate(String parameterName,
                 Date x,
                 Calendar cal)
          throws SQLException
    使用给定的Calendar对象将指定的Calendar设置为给定的java.sql.Date值。 驱动程序使用Calendar对象来构造一个SQL DATE值,然后驱动程序将其发送到数据库。 使用aa Calendar对象,驱动程序可以计算考虑到自定义时区的日期。 如果没有Calendar对象,则驱动程序使用默认时区,即运行应用程序的虚拟机的时区。
    参数
    parameterName - 参数的名称
    x - 参数值
    cal - 驱动程序将用于构建日期的 Calendar对象
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getDate(int)
    setTime
    void setTime(String parameterName,
                 Time x,
                 Calendar cal)
          throws SQLException
    使用给定的Calendar对象将指定的Calendar设置为给定的java.sql.Time值。 驱动程序使用Calendar对象来构造一个SQL TIME值,然后驱动程序将其发送到数据库。 使用aa Calendar对象,驱动程序可以计算考虑到自定义时区的时间。 如果没有Calendar对象,则驱动程序使用默认时区,即运行应用程序的虚拟机的时区。
    参数
    parameterName - 参数的名称
    x - 参数值
    cal - 驱动程序将用于构建时间的 Calendar对象
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getTime(int)
    setTimestamp
    void setTimestamp(String parameterName,
                      Timestamp x,
                      Calendar cal)
               throws SQLException
    使用给定的Calendar对象将指定的Calendar设置为给定的java.sql.Timestamp值。 驱动程序使用Calendar对象来构造一个SQL TIMESTAMP值,然后驱动程序将其发送到数据库。 使用aa Calendar对象,驱动程序可以计算考虑到自定义时区的时间戳。 如果没有Calendar对象,则驱动程序使用默认时区,即运行应用程序的虚拟机的时区。
    参数
    parameterName - 参数的名称
    x - 参数值
    cal -在 Calendar对象的驱动程序将用来构造时间戳
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    getTimestamp(int)
    setNull
    void setNull(String parameterName,
                 int sqlType,
                 String typeName)
          throws SQLException
    将指定的参数设置为SQL NULL 。 此版本的方法setNull应用于用户定义的类型和REF类型参数。 用户定义类型的示例包括:STRUCT,DISTINCT,JAVA_OBJECT和命名的数组类型。
    注意:为了便于携带,当指定NULL用户定义或REF参数时,应用程序必须给出SQL类型代码和完全限定的SQL类型名称。 在用户定义类型的情况下,名称是参数本身的类型名称。 对于REF参数,名称是引用类型的类型名称。
    
    尽管它是用于用户定义的和参数的参数,但是该方法可以用于设置任何JDBC类型的空值参数。 如果参数没有用户定义或REF类型,则给定的typeName将被忽略。
    
    参数
    parameterName - 参数的名称
    sqlType - 一个来自 java.sql.Types
    typeName - SQL用户定义类型的全限定名称; 如果参数不是用户定义的类型或SQL REF值,则忽略该值
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    getString
    String getString(String parameterName)
              throws SQLException
    检索JDBC的值CHAR , VARCHAR ,或LONGVARCHAR作为参数String Java编程语言。
    对于固定长度类型的JDBC CHAR ,返回的String对象与SQL CHAR值在数据库中具有完全相同的值,包括数据库添加的任何填充。
    
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setString(java.lang.String, java.lang.String)
    getBoolean
    boolean getBoolean(String parameterName)
                throws SQLException
    检索JDBC的值 BIT或 BOOLEAN作为参数 boolean Java编程语言。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为false 。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setBoolean(java.lang.String, boolean)
    getByte
    byte getByte(String parameterName)
          throws SQLException
    检索JDBC的价值 TINYINT参数为 byte的Java编程语言。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setByte(java.lang.String, byte)
    getShort
    short getShort(String parameterName)
            throws SQLException
    检索JDBC的价值 SMALLINT参数为 short的Java编程语言。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setShort(java.lang.String, short)
    getInt
    int getInt(String parameterName)
        throws SQLException
    检索JDBC的价值 INTEGER作为参数 int Java编程语言。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterName不对应于命名参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setInt(java.lang.String, int)
    getLong
    long getLong(String parameterName)
          throws SQLException
    检索JDBC的价值 BIGINT参数为 long的Java编程语言。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setLong(java.lang.String, long)
    getFloat
    float getFloat(String parameterName)
            throws SQLException
    检索JDBC的价值 FLOAT参数为 float的Java编程语言。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setFloat(java.lang.String, float)
    getDouble
    double getDouble(String parameterName)
              throws SQLException
    检索JDBC的价值 DOUBLE参数为 double的Java编程语言。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为0 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setDouble(java.lang.String, double)
    getBytes
    byte[] getBytes(String parameterName)
             throws SQLException
    以Java编程语言中的byte数组的 byte JDBC BINARY或 VARBINARY参数的值。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setBytes(java.lang.String, byte[])
    getDate
    Date getDate(String parameterName)
          throws SQLException
    检索作为 java.sql.Date对象的JDBC DATE参数的值。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setDate(java.lang.String, java.sql.Date)
    getTime
    Time getTime(String parameterName)
          throws SQLException
    检索作为 java.sql.Time对象的JDBC TIME参数的值。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setTime(java.lang.String, java.sql.Time)
    getTimestamp
    Timestamp getTimestamp(String parameterName)
                    throws SQLException
    以 java.sql.Timestamp对象的 TIMESTAMP获取JDBC TIMESTAMP参数的值。
    参数
    parameterName - 参数的名称
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setTimestamp(java.lang.String, java.sql.Timestamp)
    getObject
    Object getObject(String parameterName)
              throws SQLException
    检索作为一个参数的值Object Java编程语言。 如果该值为SQL NULL ,则驱动程序返回Java null 。
    此方法返回一个Java对象,其类型对应于使用方法registerOutParameter为此参数注册的JDBC类型。 通过将目标JDBC类型注册为java.sql.Types.OTHER ,此方法可用于读取数据库特定的抽象数据类型。
    
    参数
    parameterName - 参数的名称
    结果
    A java.lang.Object保存OUT参数值。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    Types , setObject(java.lang.String, java.lang.Object, int, int)
    getBigDecimal
    BigDecimal getBigDecimal(String parameterName)
                      throws SQLException
    将JDBC NUMERIC参数的值作为 java.math.BigDecimal对象检索,该对象的值包含小数点右侧的数字。
    参数
    parameterName - 参数的名称
    结果
    参数值全精度。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setBigDecimal(java.lang.String, java.math.BigDecimal)
    getObject
    Object getObject(String parameterName,
                     Map<String,类<?>> map)
              throws SQLException
    返回一个表示OUT参数的值的对象, parameterName和使用map用于该参数值的自定义映射。
    此方法返回一个Java对象,其类型对应于使用方法registerOutParameter为该参数注册的JDBC类型。 通过将目标JDBC类型注册为java.sql.Types.OTHER ,此方法可用于读取特定于数据库的抽象数据类型。
    
    参数
    parameterName - 参数的名称
    map - 从SQL类型名称到Java类的映射
    结果
    一个 java.lang.Object保存OUT参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setObject(java.lang.String, java.lang.Object, int, int)
    getRef
    Ref getRef(String parameterName)
        throws SQLException
    检索JDBC的价值REF(<structured-type>)参数为Ref的Java编程语言对象。
    参数
    parameterName - 参数的名称
    结果
    该参数值作为Java编程语言中的一个Ref对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    getBlob
    Blob getBlob(String parameterName)
          throws SQLException
    以Java编程语言的Blob对象的BLOB获取JDBC BLOB参数的值。
    参数
    parameterName - 参数的名称
    结果
    该参数值作为Java编程语言中的一个Blob对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    getClob
    Clob getClob(String parameterName)
          throws SQLException
    检索JDBC的价值 CLOB参数为 java.sql.Clob的Java编程语言对象。
    参数
    parameterName - 参数的名称
    结果
    参数值为Clob对象的Java编程语言。 如果该值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterName不对应于命名参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    getArray
    Array getArray(String parameterName)
            throws SQLException
    以Java编程语言中的Array对象的ARRAY获取JDBC ARRAY参数的值。
    参数
    parameterName - 参数的名称
    结果
    参数值为Java编程语言中的Array对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterName不对应于命名参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    getDate
    Date getDate(String parameterName,
                 Calendar cal)
          throws SQLException
    以java.sql.Date对象的DATE获取JDBC DATE参数的值,使用给定的Calendar对象来构造日期。 使用Calendar对象,驱动程序可以计算考虑到自定义时区和区域设置的日期。 如果没有Calendar对象,则驱动程序将使用默认的时区和区域设置。
    参数
    parameterName - 参数的名称
    cal - 驱动程序将用于构建日期的 Calendar对象
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setDate(java.lang.String, java.sql.Date)
    getTime
    Time getTime(String parameterName,
                 Calendar cal)
          throws SQLException
    以java.sql.Time对象的TIME获取JDBC TIME参数的值,使用给定的Calendar对象构建时间。 使用Calendar对象,驱动程序可以计算考虑到自定义时区和区域设置的时间。 如果没有Calendar对象,则驱动程序使用默认的时区和区域设置。
    参数
    parameterName - 参数的名称
    cal - 驱动程序将用于构建时间的 Calendar对象
    结果
    参数值 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setTime(java.lang.String, java.sql.Time)
    getTimestamp
    Timestamp getTimestamp(String parameterName,
                           Calendar cal)
                    throws SQLException
    检索JDBC TIMESTAMP参数的值作为java.sql.Timestamp对象,使用给定的Calendar对象来构造Timestamp对象。 使用Calendar对象,驱动程序可以计算考虑到自定义时区和区域设置的时间戳。 如果没有Calendar对象,则驱动程序将使用默认的时区和区域设置。
    参数
    parameterName - 参数的名称
    cal -在 Calendar对象的驱动程序将用来构造时间戳
    结果
    参数值。 如果值为SQL NULL ,则结果为null 。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setTimestamp(java.lang.String, java.sql.Timestamp)
    getURL
    URL getURL(String parameterName)
        throws SQLException
    检索作为 java.net.URL对象的JDBC DATALINK参数的值。
    参数
    parameterName - 参数的名称
    结果
    该参数值作为Java编程语言中的一个java.net.URL对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误,此方法在封闭的CallableStatement ,或者如果URL有问题
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.4
    另请参见:
    setURL(java.lang.String, java.net.URL)
    getRowId
    RowId getRowId(int parameterIndex)
            throws SQLException
    将指定的JDBC ROWID参数的值检索为 java.sql.RowId对象。
    参数
    parameterIndex - 第一个参数是1,第二个是2,...
    结果
    将RowId表示JDBC ROWID值的RowId对象作为指定参数。 如果参数包含SQL NULL ,则返回一个null值。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getRowId
    RowId getRowId(String parameterName)
            throws SQLException
    将指定的JDBC ROWID参数的值检索为 java.sql.RowId对象。
    参数
    parameterName - 参数的名称
    结果
    使用RowId JDBC ROWID值的RowId对象作为指定参数。 如果参数包含SQL NULL ,则返回一个null值。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setRowId
    void setRowId(String parameterName,
                  RowId x)
           throws SQLException
    将指定的参数设置为给定的java.sql.RowId对象。 当驱动程序将其发送到数据库时,将其转换为SQL ROWID 。
    参数
    parameterName - 参数的名称
    x - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setNString
    void setNString(String parameterName,
                    String value)
             throws SQLException
    将指定的参数设置为给定的String对象。 驱动程序将其转换为SQL NCHAR或NVARCHAR或LONGNVARCHAR
    参数
    parameterName - 要设置的参数的名称
    value - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setNCharacterStream
    void setNCharacterStream(String parameterName,
                             Reader value,
                             long length)
                      throws SQLException
    将指定的参数设置为Reader对象。 Reader读取数据,直到达到文件结尾。 驱动程序必须从Java字符格式转换为数据库中的国家字符集。
    参数
    parameterName - 要设置的参数的名称
    value - 参数值
    length - 参数数据中的字符数。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setNClob
    void setNClob(String parameterName,
                  NClob value)
           throws SQLException
    将指定的参数设置为java.sql.NClob对象。 该对象实现了java.sql.NClob接口。 这个NClob对象映射到一个SQL NCLOB 。
    参数
    parameterName - 要设置的参数的名称
    value - 参数值
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setClob
    void setClob(String parameterName,
                 Reader reader,
                 long length)
          throws SQLException
    将指定的参数设置为Reader对象。 reader必须包含由长度指定的SQLException数,否则将在执行CallableStatement时生成CallableStatement 。 该方法与setCharacterStream (int, Reader, int)方法不同,因为它通知驱动程序参数值应作为CLOB发送到服务器。 当使用setCharacterStream方法时,驱动程序可能需要额外的工作才能确定参数数据是否应以LONGVARCHAR或CLOB发送到服务器
    参数
    parameterName - 要设置的参数的名称
    reader - 包含用于设置参数值的数据的对象。
    length - 参数数据中的字符数。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果指定的长度小于零; 发生数据库访问错误,或者在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setBlob
    void setBlob(String parameterName,
                 InputStream inputStream,
                 long length)
          throws SQLException
    将指定的参数设置为InputStream对象。 inputstream必须包含由长度指定的字符数, SQLException将在执行CallableStatement时生成CallableStatement 。 该方法与setBinaryStream (int, InputStream, int)方法不同,因为它通知驱动程序参数值应作为BLOB发送到服务器。 当使用setBinaryStream方法时,驱动程序可能需要进行额外的工作才能确定是否将参数数据作为LONGVARBINARY或BLOB发送到服务器
    参数
    parameterName - 要设置的第二个参数的名称是2,...
    inputStream - 包含将参数值设置为的数据的对象。
    length - 参数数据中的字节数。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果指定的长度小于零; 如果输入流中的字节数与指定长度不匹配; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setNClob
    void setNClob(String parameterName,
                  Reader reader,
                  long length)
           throws SQLException
    将指定的参数设置为Reader对象。 reader必须包含由长度指定的SQLException数,否则将在执行CallableStatement时生成CallableStatement 。 该方法与setCharacterStream (int, Reader, int)方法不同,因为它通知驱动程序参数值应作为NCLOB发送到服务器。 当使用setCharacterStream方法时,驱动程序可能需要进行额外的工作才能确定参数数据是否应作为LONGNVARCHAR或NCLOB发送到服务器
    参数
    parameterName - 要设置的参数的名称
    reader - 包含将参数值设置为的数据的对象。
    length - 参数数据中的字符数。
    异常
    SQLException - 如果parameterName不对应于命名参数; 如果指定的长度小于零; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getNClob
    NClob getNClob(int parameterIndex)
            throws SQLException
    将指定的JDBC NCLOB参数的值作为Java编程语言中的 java.sql.NClob对象检索。
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    结果
    该参数值作为Java编程语言中的一个NClob对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterIndex无效; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getNClob
    NClob getNClob(String parameterName)
            throws SQLException
    以Java编程语言的 java.sql.NClob对象的 NCLOB获取JDBC NCLOB参数的值。
    参数
    parameterName - 参数的名称
    结果
    该参数值作为Java编程语言中的一个NClob对象。 如果值为SQL NULL ,则返回值null 。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setSQLXML
    void setSQLXML(String parameterName,
                   SQLXML xmlObject)
            throws SQLException
    将指定的参数设置为给定的java.sql.SQLXML对象。 当驱动程序将其发送到数据库时,将其转换为SQL XML值。
    参数
    parameterName - 参数的名称
    xmlObject - 一个 SQLXML对象,映射一个 SQL XML值
    异常
    SQLException - 如果parameterName不对应于命名参数; 如果发生数据库访问错误; 这个方法被称为在关闭CallableStatement或java.xml.transform.Result , Writer或OutputStream为尚未关闭SQLXML对象
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getSQLXML
    SQLXML getSQLXML(int parameterIndex)
              throws SQLException
    以Java编程语言中的 java.sql.SQLXML对象获取 SQL XML SQL XML参数的值。
    参数
    parameterIndex - 第一个参数的索引为1,第二个为2,...
    结果
    一个 SQLXML对象映射一个 SQL XML值
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getSQLXML
    SQLXML getSQLXML(String parameterName)
              throws SQLException
    检索指定的值 SQL XML参数为 java.sql.SQLXML的Java编程语言对象。
    参数
    parameterName - 参数的名称
    结果
    一个 SQLXML对象映射一个 SQL XML值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getNString
    String getNString(int parameterIndex)
               throws SQLException
    检索指定的值NCHAR , NVARCHAR或LONGNVARCHAR作为参数String Java编程语言。
    对于固定长度类型的JDBC NCHAR ,返回的String对象具有与数据库中SQL NCHAR值相同的值,包括数据库添加的任何填充。
    
    参数
    parameterIndex - 第一个参数的索引为1,第二个为2,...
    结果
    一个 String对象映射的 NCHAR , NVARCHAR或 LONGNVARCHAR值
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    另请参见:
    setNString(java.lang.String, java.lang.String)
    getNString
    String getNString(String parameterName)
               throws SQLException
    检索指定的值NCHAR , NVARCHAR或LONGNVARCHAR作为参数String Java编程语言。
    对于固定长度类型的JDBC NCHAR ,返回的String对象与数据库中SQL NCHAR值完全相同,包括数据库添加的任何填充。
    
    参数
    parameterName - 参数的名称
    结果
    一个 String对象映射的 NCHAR , NVARCHAR或 LONGNVARCHAR值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    另请参见:
    setNString(java.lang.String, java.lang.String)
    getNCharacterStream
    Reader getNCharacterStream(int parameterIndex)
                        throws SQLException
    以Java编程语言中的java.io.Reader对象获取指定参数的值。 访问时,它适用于使用NCHAR , NVARCHAR和LONGNVARCHAR参数。
    参数
    parameterIndex - 第一个参数是1,第二个是2,...
    结果
    一个包含参数值的java.io.Reader对象; 如果值是SQL NULL ,返回的值是null Java编程语言。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getNCharacterStream
    Reader getNCharacterStream(String parameterName)
                        throws SQLException
    以Java编程语言中的java.io.Reader对象获取指定参数的值。 它用于NCHAR NVARCHAR和LONGNVARCHAR参数时使用。
    参数
    parameterName - 参数的名称
    结果
    一个包含参数值的java.io.Reader对象; 如果值为SQL NULL ,返回的值为null ,在Java编程语言
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getCharacterStream
    Reader getCharacterStream(int parameterIndex)
                       throws SQLException
    以Java编程语言的形式获取指定参数的值作为 java.io.Reader对象。
    参数
    parameterIndex - 第一个参数是1,第二个是2,...
    结果
    一个包含参数值的java.io.Reader对象; 如果值是SQL NULL ,返回的值是null Java编程语言。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    从以下版本开始:
    1.6
    getCharacterStream
    Reader getCharacterStream(String parameterName)
                       throws SQLException
    以Java编程语言中的 java.io.Reader对象获取指定参数的值。
    参数
    parameterName - 参数的名称
    结果
    一个包含参数值的java.io.Reader对象; 如果值为SQL NULL ,则返回的值为null ,在Java编程语言
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setBlob
    void setBlob(String parameterName,
                 Blob x)
          throws SQLException
    将指定的参数设置为给定的java.sql.Blob对象。 当驱动程序将其发送到数据库时,将其转换为SQL BLOB值。
    参数
    parameterName - 参数的名称
    x - 映射SQL BLOB值的 Blob对象
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setClob
    void setClob(String parameterName,
                 Clob x)
          throws SQLException
    将指定的参数设置为给定的java.sql.Clob对象。 当驱动程序将其发送到数据库时,将其转换为SQL CLOB值。
    参数
    parameterName - 参数的名称
    x - 映射SQL CLOB值的 Clob对象
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setAsciiStream
    void setAsciiStream(String parameterName,
                        InputStream x,
                        long length)
                 throws SQLException
    将指定的参数设置为给定的输入流,它将具有指定的字节数。 当一个非常大的ASCII值输入到LONGVARCHAR参数时,通过java.io.InputStream发送它可能更java.io.InputStream 。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将从ASCII到数据库字符格式进行任何必要的转换。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    参数
    parameterName - 参数的名称
    x - 包含ASCII参数值的Java输入流
    length - 流中的字节数
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setBinaryStream
    void setBinaryStream(String parameterName,
                         InputStream x,
                         long length)
                  throws SQLException
    将指定的参数设置为给定的输入流,它将具有指定的字节数。 当一个非常大的二进制值输入到LONGVARBINARY参数时,通过java.io.InputStream对象发送它可能更实用。 数据将根据需要从流中读取,直到达到文件结尾。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    参数
    parameterName - 参数的名称
    x - 包含二进制参数值的java输入流
    length - 流中的字节数
    异常
    SQLException - 如果parameterName不对应于命名参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setCharacterStream
    void setCharacterStream(String parameterName,
                            Reader reader,
                            long length)
                     throws SQLException
    将指定的参数设置为给定的Reader对象,这是给定的长度的字符数。 当一个非常大的UNICODE值输入到LONGVARCHAR参数时,通过java.io.Reader对象发送它可能更实用。 数据将根据需要从流中读取,直到达到文件结尾。 JDBC驱动程序将从UNICODE到数据库字符格式进行任何必要的转换。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    参数
    parameterName - 参数的名称
    reader -所述 java.io.Reader包含用作指定参数的UNICODE数据对象
    length - 流中的字符数
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setAsciiStream
    void setAsciiStream(String parameterName,
                        InputStream x)
                 throws SQLException
    将指定的参数设置为给定的输入流。 当一个非常大的ASCII值输入到LONGVARCHAR参数时,通过java.io.InputStream发送它可能会更加java.io.InputStream 。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将从ASCII到数据库字符格式进行任何必要的转换。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    注意:请参阅您的JDBC驱动程序文档,以确定使用需要长度参数的版本setAsciiStream可能会更有效。
    
    参数
    parameterName - 参数的名称
    x - 包含ASCII参数值的Java输入流
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setBinaryStream
    void setBinaryStream(String parameterName,
                         InputStream x)
                  throws SQLException
    将指定的参数设置为给定的输入流。 当一个非常大的二进制值输入到一个LONGVARBINARY参数时,通过一个java.io.InputStream对象发送它可能会比较实用。 数据将根据需要从流中读取,直到达到文件结尾。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    注意:请参阅您的JDBC驱动程序文档,以确定使用一个长度参数的版本setBinaryStream可能会更有效。
    
    参数
    parameterName - 参数的名称
    x - 包含二进制参数值的java输入流
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setCharacterStream
    void setCharacterStream(String parameterName,
                            Reader reader)
                     throws SQLException
    将指定的参数设置为给定的Reader对象。 当一个非常大的UNICODE值输入到LONGVARCHAR参数时,通过java.io.Reader对象发送它可能更实用。 数据将根据需要从流中读取,直到达到文件结尾。 JDBC驱动程序将从UNICODE到数据库字符格式进行任何必要的转换。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    注:请参考JDBC驱动程序文档,以确定它可能是更有效地使用一个版本的setCharacterStream其带长度参数。
    
    参数
    parameterName - 参数的名称
    reader - 包含Unicode数据的 java.io.Reader对象
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setNCharacterStream
    void setNCharacterStream(String parameterName,
                             Reader value)
                      throws SQLException
    将指定的参数设置为Reader对象。 Reader读取数据,直到达到文件结尾。 驱动程序必须从Java字符格式转换为数据库中的国家字符集。
    注意:此流对象可以是标准Java流对象,也可以是实现标准接口的自己的子类。
    
    注:请参考JDBC驱动程序文档,以确定它可能是更有效地使用一个版本的setNCharacterStream其带长度参数。
    
    参数
    parameterName - 参数的名称
    value - 参数值
    异常
    SQLException - 如果parameterName不对应于named参数; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误; 或者这个方法在封闭的CallableStatement
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setClob
    void setClob(String parameterName,
                 Reader reader)
          throws SQLException
    将指定的参数设置为Reader对象。 该方法与setCharacterStream (int, Reader)方法不同,因为它通知驱动程序参数值应作为CLOB发送到服务器。 当使用setCharacterStream方法时,驱动程序可能需要进行额外的工作才能确定参数数据是否应作为LONGVARCHAR或CLOB发送到服务器
    注:请参考JDBC驱动程序文档,以确定它可能是更有效地使用一个版本的setClob其带长度参数。
    
    参数
    parameterName - 参数的名称
    reader - 包含将参数值设置为的数据的对象。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setBlob
    void setBlob(String parameterName,
                 InputStream inputStream)
          throws SQLException
    将指定的参数设置为InputStream对象。 该方法与setBinaryStream (int, InputStream)方法不同,因为它通知驱动程序参数值应作为BLOB发送到服务器。 当使用setBinaryStream方法时,驱动程序可能需要进行额外的工作才能确定参数数据是否应作为LONGVARBINARY或BLOB发送到服务器
    注:请参考JDBC驱动程序文档,以确定它可能是更有效地使用一个版本的setBlob其带长度参数。
    
    参数
    parameterName - 参数的名称
    inputStream - 包含用于设置参数值的数据的对象。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果发生数据库访问错误或在关闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    setNClob
    void setNClob(String parameterName,
                  Reader reader)
           throws SQLException
    将指定的参数设置为Reader对象。 该方法与setCharacterStream (int, Reader)方法不同,因为它通知驱动程序参数值应作为NCLOB发送到服务器。 当使用setCharacterStream方法时,驱动程序可能必须进行额外的工作来确定参数数据是否应该作为LONGNVARCHAR或NCLOB发送到服务器
    注:请参考JDBC驱动程序文档,以确定它可能是更有效地使用一个版本的setNClob其带长度参数。
    
    参数
    parameterName - 参数的名称
    reader - 包含将参数值设置为的数据的对象。
    异常
    SQLException - 如果parameterName不对应于named参数; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.6
    getObject
    <T> T getObject(int parameterIndex,
                    类<T> type)
             throws SQLException
    返回一个对象,表示OUT参数的值parameterIndex并将从SQL类型的参数转换为所请求的Java数据类型,如果支持的转换。 如果不支持转换或为该类型指定了SQLException则抛出SQLException 。
    
    至少,实现必须支持附录B表B-3中定义的转换,并将适当的用户定义的SQL类型转换为实现SQLData或Struct的Java类型。 可以支持额外的转换,并定义供应商。
    
    参数类型
    T - 由此Class对象建模的类的类型
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    type - 表示将数据类型转换为指定参数的类。
    结果
    一个保留OUT参数值的 type的实例
    异常
    SQLException - 如果不支持转换,则type为null或发生其他错误。 异常的getCause()方法可能会提供更详细的异常,例如,如果发生转换错误
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.7
    getObject
    <T> T getObject(String parameterName,
                    类<T> type)
             throws SQLException
    返回一个对象,表示OUT参数的值parameterName并将从SQL类型的参数转换为所请求的Java数据类型,如果支持的转换。 如果不支持转换或为该类型指定了SQLException则抛出SQLException 。
    
    至少,实现必须支持附录B表B-3中定义的转换,并将适当的用户定义的SQL类型转换为实现SQLData或Struct的Java类型。 可以支持额外的转换,并定义供应商。
    
    参数类型
    T - 由此Class对象建模的类的类型
    参数
    parameterName - 参数的名称
    type - 表示将指定参数转换为的Java数据类型的类。
    结果
    一个保存OUT参数值的 type的实例
    异常
    SQLException - 如果不支持转换,则type为null或发生其他错误。 异常的getCause()方法可能会提供更详细的异常,例如,如果发生转换错误
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
    从以下版本开始:
    1.7
    setObject
    default void setObject(String parameterName,
                           Object x,
                           SQLType targetSqlType,
                           int scaleOrLength)
                    throws SQLException
    使用给定对象设置指定参数的值。 如果第二个参数是InputStream则流必须包含scaleOrLength指定的字节数。 如果第二个参数是Reader则读取器必须包含scaleOrLength指定的字符数。 如果这些条件不正确,驱动程序将在执行准备语句时生成SQLException 。
    
    在发送给数据库之前,给定的Java对象将被转换为给定的targetSqlType。 如果对象具有自定义映射(是实现接口的类的SQLData ),JDBC驱动程序应该调用方法SQLData.writeSQL将其写入到SQL数据流。 如果,在另一方面,对象是实现一类Ref , Blob , Clob , NClob , Struct , java.net.URL ,或Array ,则驱动程序应当将它传递给数据库作为相应SQL类型的值。
    
    请注意,此方法可能用于传递数据库特定的抽象数据类型。
    
    默认实现将抛出SQLFeatureNotSupportedException
    
    参数
    parameterName - 参数的名称
    x - 包含输入参数值的对象
    targetSqlType - 要发送到数据库的SQL类型。 比例参数可能进一步限定此类型。
    scaleOrLength - 对于java.sql.JDBCType.DECIMAL或java.sql.JDBCType.NUMERIC types ,这是小数点后的位数。 对于Java对象类型InputStream和Reader ,这是流或读取器中数据的长度。 对于所有其他类型,此值将被忽略。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法,或者如果x指定的Java对象是InputStream或Reader对象,并且scale参数的值小于零
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的targetSqlType
    从以下版本开始:
    1.8
    另请参见:
    JDBCType , SQLType
    setObject
    default void setObject(String parameterName,
                           Object x,
                           SQLType targetSqlType)
                    throws SQLException
    使用给定对象设置指定参数的值。 该方法类似于setObject(String parameterName, Object x, SQLType targetSqlType, int scaleOrLength) ,除了它假定为零。
    默认实现将抛出SQLFeatureNotSupportedException
    
    参数
    parameterName - 参数的名称
    x - 包含输入参数值的对象
    targetSqlType - 要发送到数据库的SQL类型
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的targetSqlType
    从以下版本开始:
    1.8
    另请参见:
    JDBCType , SQLType
    registerOutParameter
    default void registerOutParameter(int parameterIndex,
                                      SQLType sqlType)
                               throws SQLException
    将序号parameterIndex中的OUT参数parameterIndex到JDBC类型sqlType 。 所有OUT参数必须在执行存储过程之前进行注册。
    sqlType为OUT参数指定的JDBC类型决定了在get方法中必须使用的Java类型,以读取该参数的值。
    
    如果预期要返回给此输出参数的JDBC类型是特定于该特定的数据库, sqlType可以是JDBCType.OTHER或SQLType由该JDBC驱动程序支持。 方法getObject(int)检索该值。
    
    默认实现将抛出SQLFeatureNotSupportedException
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    sqlType - 由SQLType定义的JDBC类型代码用于注册OUT参数。 如果参数是JDBC类型JDBCType.NUMERIC或JDBCType.DECIMAL , registerOutParameter使用接受比例值的registerOutParameter版本。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的sqlType
    从以下版本开始:
    1.8
    另请参见:
    JDBCType , SQLType
    registerOutParameter
    default void registerOutParameter(int parameterIndex,
                                      SQLType sqlType,
                                      int scale)
                               throws SQLException
    将序号parameterIndex为JDBC类型sqlType 。 所有OUT参数必须在执行存储过程之前进行注册。
    由sqlType为OUT参数指定的JDBC类型决定了在get方法中必须使用的Java类型,以读取该参数的值。
    
    这个版本registerOutParameter当参数是JDBC类型应使用JDBCType.NUMERIC或JDBCType.DECIMAL 。
    
    默认实现将抛出SQLFeatureNotSupportedException
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,依此类推
    sqlType - 由 SQLType定义的JDBC类型代码用于注册OUT参数。
    scale - 小数点右侧所需的数字位数。 它必须大于或等于零。
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的sqlType
    从以下版本开始:
    1.8
    另请参见:
    JDBCType , SQLType
    registerOutParameter
    default void registerOutParameter(int parameterIndex,
                                      SQLType sqlType,
                                      String typeName)
                               throws SQLException
    注册指定的输出参数。 此版本的方法registerOutParameter应用于用户定义或REF输出参数。 的用户定义类型的实例包括: STRUCT , DISTINCT , JAVA_OBJECT ,和指定数组类型。
    所有OUT参数必须在执行存储过程之前进行注册。
    
    对于用户定义的参数,还应该给出参数的完全限定的SQL类型名称,而REF参数需要给出引用类型的完全限定类型名称。 不需要类型代码和类型名称信息的JDBC驱动程序可能会忽略它。 然而,为了便于携带,应用程序应始终为用户定义和REF参数提供这些值。 虽然它是用于用户定义和REF参数,但是该方法可以用于注册任何JDBC类型的参数。 如果该参数不具有用户定义或REF类型,则typeName参数将被忽略。
    
    注意:读取out参数的值时,必须使用Java类型对应于参数的注册SQL类型的getter方法。
    
    默认实现将抛出SQLFeatureNotSupportedException
    
    参数
    parameterIndex - 第一个参数是1,第二个是2,...
    sqlType - 由 SQLType定义的JDBC类型代码用于注册OUT参数。
    typeName - SQL结构化类型的全限定名称
    异常
    SQLException - 如果parameterIndex无效; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的sqlType
    从以下版本开始:
    1.8
    另请参见:
    JDBCType , SQLType
    registerOutParameter
    default void registerOutParameter(String parameterName,
                                      SQLType sqlType)
                               throws SQLException
    将名为parameterName的OUT参数parameterName到JDBC类型sqlType 。 所有OUT参数必须在执行存储过程之前进行注册。
    通过指定JDBC类型sqlType为OUT参数确定必须在所使用的Java类型get方法来读取该参数的值。
    
    如果预期要返回给此输出参数的JDBC类型是特定于该特定的数据库, sqlType应该是JDBCType.OTHER或SQLType由该JDBC驱动程序支持..方法getObject(int)检索值。
    
    默认实现将抛出SQLFeatureNotSupportedException
    
    参数
    parameterName - 参数的名称
    sqlType - 由SQLType定义的JDBC类型代码用于注册OUT参数。 如果参数是JDBC类型JDBCType.NUMERIC或JDBCType.DECIMAL , registerOutParameter使用接受比例值的registerOutParameter版本。
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的sqlType或JDBC驱动程序不支持此方法
    从以下版本开始:
    1.8
    另请参见:
    JDBCType , SQLType
    registerOutParameter
    default void registerOutParameter(String parameterName,
                                      SQLType sqlType,
                                      int scale)
                               throws SQLException
    注册命名的参数parameterName JDBC类型的sqlType 。 所有OUT参数必须在执行存储过程之前进行注册。
    sqlType为OUT参数指定的JDBC类型决定了在get方法中必须使用的Java类型,以读取该参数的值。
    
    这个版本registerOutParameter当参数是JDBC类型应使用JDBCType.NUMERIC或JDBCType.DECIMAL 。
    
    默认实现将抛出SQLFeatureNotSupportedException
    
    参数
    parameterName - 参数的名称
    sqlType - 由 SQLType定义的JDBC类型代码用于注册OUT参数。
    scale - 小数点右侧所需的数字位数。 它必须大于或等于零。
    异常
    SQLException - 如果parameterName不对应于一个命名参数; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的sqlType或JDBC驱动程序不支持此方法
    从以下版本开始:
    1.8
    另请参见:
    JDBCType , SQLType
    registerOutParameter
    default void registerOutParameter(String parameterName,
                                      SQLType sqlType,
                                      String typeName)
                               throws SQLException
    注册指定的输出参数。 该版本的方法registerOutParameter应该用于用户名或REF输出参数。 用户命名类型的示例包括:STRUCT,DISTINCT,JAVA_OBJECT和命名的数组类型。
    所有OUT参数必须在执行存储过程之前进行注册。
    
    对于用户命名的参数,还应该给出参数的完全限定的SQL类型名称,而REF参数要求给定引用类型的完全限定类型名称。 不需要类型代码和类型名称信息的JDBC驱动程序可能会忽略它。 然而,为了便于携带,应用程序应始终为用户命名和REF参数提供这些值。 尽管它是用于用户命名的和REF参数的,但是该方法可以用于注册任何JDBC类型的参数。 如果该参数不具有用户名或REF类型,则将忽略typeName参数。
    注意:读取out参数的值时,必须使用Java类型XXX对应于参数的注册SQL类型的getXXX方法。
    
    默认实现将抛出SQLFeatureNotSupportedException
    
    参数
    parameterName - 参数的名称
    sqlType - 由 SQLType定义的JDBC类型代码用于注册OUT参数。
    typeName - SQL结构化类型的全限定名称
    异常
    SQLException - 如果parameterName与命名参数不对应; 如果发生数据库访问错误或在封闭的CallableStatement上调用此方法
    SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持指定的sqlType或JDBC驱动程序不支持此方法
    从以下版本开始:
    1.8
    
    
    展开全文
  • JDBC之CallableStatement

    2019-06-14 18:06:29
    前言:在按部就班的学习JDBC的过程中,来到了这里来——CallableStetement。怀着不情愿的心情花了一下午学习了相关知识,不情愿是因为感觉像鸡肋,学了没什么用。也许是我能力有限,目光短浅吧。...

    前言:在按部就班的学习JDBC的过程中,来到了这里来——CallableStetement。怀着不情愿的心情花了一下午学习了相关知识,不情愿是因为感觉像鸡肋,学了没什么用。也许是我能力有限,目光短浅吧。总之,既学之 ,则记之。以防忘记,又要遭受那不情愿之苦而重新学一次
    注:本文基于mysql数据库

    一、存储过程

        存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

    二、mysql语法

    创建存储过程:

    create procedure sp_name (params)
    begin
    // sql 代码
    end

    其中params常用类型有两种:in 表示输入参数out表示输入参数(可理解为函数的返回结果)

    调用存储过程:

    call sp_name(params)

    三、CallableStatement的使用

        CallableStatement是用来执行调用存储过程的sql语句的类

    1、准备工作

    新建数据库表,语句如下:

    create table user(
      id int auto_increment primary key,
      username varchar(50),
      password int(11)
    )
    

    数据库连接工具

     public class DBUtils {
        private static final String driver = "com.mysql.jdbc.Driver";
        private static final String url = "jdbc:mysql://localhost:3306/imooc";
        private static final Properties props = new Properties();
        static {
            props.setProperty("user", "root");
            props.setProperty("password", "root");
            props.setProperty("useUnicode", "true");
            props.setProperty("characterEncoding", "UTF-8");
        }
        public static Connection getConnection() {
            Connection conn = null;
            try {
                Class.forName(driver);
                conn = DriverManager.getConnection(url, props);
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
            return conn;
        }
    }
    
    2、无参存储过程

    存储过程命名:sp表示存储过程;select代表功能是查询;nofilter表示无参数

    CREATE  PROCEDURE sp_select_nofilter()
    BEGIN
    select username, `password` from user;
    END
    

    java 操作代码如下:

    public static void selectAll() throws SQLException {
    
            try(Connection conn = DBUtils.getConnection();
                // caution: call 调用存储过程括号可选,
                CallableStatement cstat = conn.prepareCall("call sp_select_nofilter()")) {
                cstat.execute();
                ResultSet rs = cstat.getResultSet();
                while(rs.next()) {
                   System.out.println(rs.getString(1) + "\t" + rs.getInt(2));
                }
            }
        }
    

    值得注意的是:
    1、prepareCall方法参数的书写形式:call sp_name(params),即在mysql数据库中调用存储过程的语句。
    2、当存储过程执行后的结果是结果集时,可以通过getResultSet方法获取此结果集

    执行结果:
    在这里插入图片描述

    2、包含输入参数的存储过程

    功能:输入参数是null或者为空字符串,则查询全部用户;否则根据条件模糊查询

    CREATE PROCEDURE `sp_select_filter`(IN `u` varchar(10))
    BEGIN
    	if u is null or u = '' then  select username,`password` from user;
    	else 
    		select username, `password` from user where username like concat('%', u, '%');
    		end if;
    END;
    

    java操作代码如下:

      public static void select (String username) throws  SQLException{
            try(Connection conn = DBUtils.getConnection();
                CallableStatement cstat = conn.prepareCall("call sp_select_filter(?)")) {
                cstat.setString(1,username);
                cstat.execute();
                ResultSet rs = cstat.getResultSet();
                while(rs.next()) {
                    System.out.println(rs.getString(1) + "\t" + rs.getInt(2));
                }
            }
        }
    

    值得注意的是:
    调用存储过程的sql语句,使用?作为输入参数的占位符,之后像预编译语句PreparedStatement通过setXxx方法设置占位符的值。

    执行结果:
    (1)输入null或者“”
    在这里插入图片描述
    (2)输入“中国”
    在这里插入图片描述

    包含输出参数的存储过程

    功能:统计数据库表中的总行数
    CREATE PROCEDURE sp_select_count(OUT rowCount int)
    BEGIN
    	select count(*) into rowCount from user;
    END
    

    java操作代码:

     public static int count() throws SQLException{
            int result = -1;
            try(Connection conn = DBUtils.getConnection();
                CallableStatement cstat = conn.prepareCall("call sp_select_count(?)")) {
                cstat.registerOutParameter(1, Types.INTEGER);
                cstat.execute();
                result = cstat.getInt(1);
                }
            return result;
        }
    
    

    值得注意的是:
    占位符表示输出参数的值,要通知CallableStatement需要一个空间去保存输出参数的值,并要声明所保存值的类型,调用CallableStatement#registerOUtParameter方法实行此目的。通过调用CallableStatement#getXxx方法,获得在CallableStatement中注册的输出参数的值。

    执行结果:
    在这里插入图片描述

    展开全文
  • CallableStatement的用法

    千次阅读 2017-07-17 18:52:42
    CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement 对象所含的内容。这种调用是用一种换码语法来写的,有两种...
    CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement 对象所含的内容。这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参数,另一种形式不带结果参数(有关换码语法的信息,参见第
     4 节“语句”)。结果参数是一种输出 (OUT) 参数,是已储存过程的返回值。两种形式都可带有数量可变的输入(IN 参数)、输出(OUT 参数)或输入和输出(INOUT 参数)的参数。问号将用作参数的占位符。 

    在 JDBC 中调用已储存过程的语法如下所示。注意,方括号表示其间的内容是可选项;方括号本身并不是语法的组成部份。 

    {call 过程名[(?, ?, ...)]} 

    返回结果参数的过程的语法为: 

    {? = call 过程名[(?, ?, ...)]} 

    不带参数的已储存过程的语法类似: 

    {call 过程名} 

    通常,创建 CallableStatement 对象的人应当知道所用的 DBMS 是支持已储存过程的,并且知道这些过程都是些什么。然而,如果需要检查,多种 DatabaseMetaData 方法都可以提供这样的信息。例如,如果 DBMS 支持已储存过程的调用,则 supportsStoredProcedures 方法将返回 true,而 getProcedures 方法将返回对已储存过程的描述。 

    CallableStatement 继承 Statement 的方法(它们用于处理一般的 SQL 语句),还继承了 PreparedStatement 的方法(它们用于处理 IN 参数)。CallableStatement 中定义的所有方法都用于处理 OUT 参数或 INOUT 参数的输出部分:注册 OUT 参数的 JDBC 类型(一般 SQL 类型)、从这些参数中检索结果,或者检查所返回的值是否为 JDBC NULL。 


    7.1.1 创建 CallableStatement 对象 
    CallableStatement 对象是用 Connection 方法 prepareCall 创建的。下例创建 CallableStatement 的实例,其中含有对已储存过程 getTestData 调用。该过程有两个变量,但不含结果参数: 

    CallableStatement cstmt = con.prepareCall( 
    "{call getTestData(?, ?)}"); 

    其中 ? 占位符为 IN、 OUT 还是 INOUT 参数,取决于已储存过程 getTestData。 


    7.1.2 IN 和 OUT 参数 
    将 IN 参数传给 CallableStatement 对象是通过 setXXX 方法完成的。该方法继承自 PreparedStatement。所传入参数的类型决定了所用的 setXXX 方法(例如,用 setFloat 来传入 float 值等)。 

    如果已储存过程返回 OUT 参数,则在执行 CallableStatement 对象以前必须先注册每个 OUT 参数的 JDBC 类型(这是必需的,因为某些 DBMS 要求 JDBC 类型)。注册 JDBC 类型是用 registerOutParameter 方法来完成的。语句执行完后,CallableStatement 的 getXXX 方法将取回参数值。正确的 getXXX 方法是为各参数所注册的 JDBC 类型所对应的 Java 类型(从 JDBC 类型到 Java 类型的标准映射见 8.6.1 节中的表)。换言之, registerOutParameter 使用的是 JDBC 类型(因此它与数据库返回的 JDBC 类型匹配),而 getXXX 将之转换为 Java 类型。 

    作为示例,下述代码先注册 OUT 参数,执行由 cstmt 所调用的已储存过程,然后检索在 OUT 参数中返回的值。方法 getByte 从第一个 OUT 参数中取出一个 Java 字节,而 getBigDecimal 从第二个 OUT 参数中取出一个 BigDecimal 对象(小数点后面带三位数): 

    CallableStatement cstmt = con.prepareCall( 
    "{call getTestData(?, ?)}"); 
    cstmt.registerOutParameter(1, java.sql.Types.TINYINT); 
    cstmt.registerOutParameter(2, java.sql.Types.DECIMAL, 3); 
    cstmt.executeQuery(); 
    byte x = cstmt.getByte(1); 
    java.math.BigDecimal n = cstmt.getBigDecimal(2, 3); 

    CallableStatement 与 ResultSet 不同,它不提供用增量方式检索大 OUT 值的特殊机制。 


    7.1.3 INOUT 参数 
    既支持输入又接受输出的参数(INOUT 参数)除了调用 registerOutParameter 方法外,还要求调用适当的 setXXX 方法(该方法是从 PreparedStatement 继承来的)。setXXX 方法将参数值设置为输入参数,而 registerOutParameter 方法将它的 JDBC 类型注册为输出参数。setXXX 方法提供一个 Java 值,而驱动程序先把这个值转换为 JDBC 值,然后将它送到数据库中。 

    这种 IN 值的 JDBC 类型和提供给 registerOutParameter 方法的 JDBC 类型应该相同。然后,要检索输出值,就要用对应的 getXXX 方法。例如,Java 类型为 byte 的参数应该使用方法 setByte 来赋输入值。应该给 registerOutParameter 提供类型为 TINYINT 的 JDBC 类型,同时应使用 getByte 来检索输出值 (第 8 节“JDBC 和 Java 类型之间的映射”将给出详细信息和类型映射表)。 

    下例假设有一个已储存过程 reviseTotal,其唯一参数是 INOUT 参数。方法 setByte 把此参数设为 25,驱动程序将把它作为 JDBC TINYINT 类型送到数据库中。接着,registerOutParameter 将该参数注册为 JDBC TINYINT。执行完该已储存过程后,将返回一个新的 JDBC TINYINT 值。方法 getByte 将把这个新值作为 Java byte 类型检索。 

    CallableStatement cstmt = con.prepareCall( 
    "{call reviseTotal(?)}"); 
    cstmt.setByte(1, 25); 
    cstmt.registerOutParameter(1, java.sql.Types.TINYINT); 
    cstmt.executeUpdate(); 
    byte x = cstmt.getByte(1); 

    7.1.4 先检索结果,再检索 OUT 参数 
    由于某些 DBMS 的限制,为了实现最大的可移植性,建议先检索由执行 CallableStatement 对象所产生的结果,然后再用 CallableStatement.getXXX 方法来检索 OUT 参数。 

    如果 CallableStatement 对象返回多个 ResultSet 对象(通过调用 execute 方法),在检索 OUT 参数前应先检索所有的结果。这种情况下,为确保对所有的结果都进行了访问,必须对 Statement 方法 getResultSet、getUpdateCount 和 getMoreResults 进行调用,直到不再有结果为止。 

    检索完所有的结果后,就可用 CallableStatement.getXXX 方法来检索 OUT 参数中的值。 


    7.1.5 检索作为 OUT 参数的 NULL 值 
    返回到 OUT 参数中的值可能会是 JDBC NULL。当出现这种情形时,将对 JDBC NULL 值进行转换以使 getXXX 方法所返回的值为 null、0 或 false,这取决于 getXXX 方法类型。对于 ResultSet 对象,要知道 0 或 false 是否源于 JDBC NULL 的唯一方法,是用方法 wasNull 进行检测。如果 getXXX 方法读取的最后一个值是 JDBC NULL,则该方法返回 true,否则返回 flase。第 5 节“ResultSet”将给出详细信息。
    展开全文
  • CallableStatement的使用(存储过程)

    千次阅读 2018-09-19 17:04:30
    使用的是MySQL 现在数据库中添加几个存储过程如下 #创建存储过程 #1.空参 DELIMITER $$ CREATE PROCEDURE p1( ) ... INSERT INTO pp(NAME)VALUES('x1');... INSERT INTO pp(NAME)VALUES('x2');...#...
  • callablestatement 使用方法

    千次阅读 2012-02-22 14:40:48
    CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement对象所含的内容。这种调用是用一种换码语法来写的,有两种形式...
  • CallableStatement

    千次阅读 2018-09-13 21:03:52
    CallableStatement(存储过程) jdbc执行SQL语句,可以通过Statement,PreparedStatement,CallableStatement CallableStatement负责调用存储过程 了解一下过程SQL语句 结构化查询语言(Structured Query Language)...
  • JDBC CallableStatement

    千次阅读 2008-07-23 11:43:00
    概述 CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement 对象所含的内容。这种调用是用一种换码语法来写的,有两...
  • JDBC 存储过程 调用 CallableStatement
  • JDBC CallableStatement示例,向您展示如何从PostgreSQL数据库中调用存储的函数。 PS已通过PostgreSQL 11和Java 8测试 pom.xml <dependency> <groupId>org.postgresql</groupId> <...
  • JDBCCallableStatement执行存储过程

    千次阅读 多人点赞 2020-03-31 09:45:06
    JDBC中如何调用存储过程?本文详细的讲解了如何使用CallableStatement来调用不同类型的存储过程。
  • 我现在遇到一个问题, java 去调用存储过程的时候, 如果 存储过程 代码里面写的是增、删、查、改,最终有select 语句的话,java 是可以取得结果集的 ...JDBC 调用存储过程:CallableStatement call = c
  • 文章目录1、简述2、类图3、示例3.1、单个结果集...CallableStatement 是用于执行SQL存储过程的。JDBC API提供了存储过程SQL转义语法,该语法允许所有RDBMS以标准方式调用存储过程。 Connection 接口提供了 prepareC...
  • JDBC CallableStatement示例,用于调用返回游标的存储过程。 经过Java 8和Oracle数据库19c测试 pom.xml <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc</...
  • JDBC 应用程序中,JDBC 语句对象用于将 SQL 语句发送到数据库服务器。一个语句对象与一个连接相关联,应用程序与数据库服务器之间的通信由语句对象来处理。 JDBC 中有三种类型的语句对象: 常规语句...
  • 上一篇博客讲了对大数据对象的处理操作,用到了Clob和blob接口,这一篇博客我来说说CallableStatement接口调用存储过程。
  • CallableStatement的调用及批处理浅析

    千次阅读 2009-03-02 14:03:00
    prepareCall()方法错误地放到某个循环体中Connection conn = null;PreparedStatement stmt = null;CallableStatement cs = null;String sql = null;try { InitialContext ic = new InitialContext(); DataS
  • Statement 每次执行sql语句,数据库都要执行sql语句的编译 ,最好用于仅执行一次查询并返回结果的情形,效率高于PreparedStatement.   PreparedStatement是预编译的,使用PreparedStatement有几个好处 ...
  • callablestatement存储过程

    千次阅读 2010-10-29 13:45:00
    概述  CallableStatement 对象为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是 CallableStatement 对象所含的内容。这种调用是用一种换码...
  • SQL Server的分页可以有几种方式实现,例如最简单的: 1、select top 20 * from table where id not in(select top 200 id from table where ?)即取20条记录,并且这些记录是不在当前页的之前的那些页的记录中。...
  • 1、Statement、PreparedStatement和CallableStatement都是接口(interface)。 (二)Statement 1、Statement继承自Wrapper,Statement接口提供了执行语句和获取结果的基本方法; 2、支持普通的不带参的查询SQL; ...
  • JDBC CallableStatement示例,用于调用接受IN参数的存储过程。 经过Java 8和Oracle数据库19c测试 pom.xml <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc</...

空空如也

1 2 3 4 5 ... 20
收藏数 23,348
精华内容 9,339
关键字:

callablestatement