Java 如何重用ArrayDescriptor?

Java 如何重用ArrayDescriptor?,java,arrays,oracle,database-connection,Java,Arrays,Oracle,Database Connection,我尝试了下面的代码: public class Abc { private ArrayDescriptor arrayDesc; void init() { connection = //create connection arrayDesc = ArrayDescriptor.createDescriptor("DBTYPE",connection); } void m1() { conn1 = //creat

我尝试了下面的代码:

public class Abc {

    private ArrayDescriptor arrayDesc;

    void init() {
       connection = //create connection
        arrayDesc = ArrayDescriptor.createDescriptor("DBTYPE",connection);
    }

    void m1() {
        conn1 = //create connection
        ARRAY array_to_pass1 = new ARRAY( arrayDesc , conn1, idsArray1 ); 
    }

    void m2() {
        conn2 = //create connection
        ARRAY array_to_pass2 = new ARRAY( arrayDesc , conn2, idsArray2 ); 
    }

}
此代码给出以下错误:

table.java.sql.SQLException:缺少描述符 位于oracle.sql.DatumWithConnection.assertNotNull(DatumWithConnection.java:103)

如何解决这个问题?

已被弃用。假设您的
连接
对象属于该类型,请尝试使用以下内容:

public class Abc {
    void init() {
        connection = //create connection
    }

    void m1() {
        conn1 = //create connection
        array array_to_pass1 = conn1.createOracleArray(arrayDesc, idsArray1); 
    }

    void m2() {
        conn2 = //create connection
        array array_to_pass2 = conn2.createOracleArray(arrayDesc, idsArray2); 
    }
}

注意:使用此方法时,数组的类型将为
java.sql.Array
而不是
oracle.sql.Array
必须使用使用相同连接的ArrayDescriptor调用新数组。所以你想做的事行不通。请注意,每个连接都有一个描述符缓存,因此每个连接只创建一次描述符