Array example

Following is a sample database schema:
CREATE TABLE tab (a set(integer not null), b integer);
INSERT INTO tab VALUES ("set{1,2,3}", 10);
The following example fetches data using a java.sql.Array object:
PreparedStatement pstmt = conn.prepareStatement("select a from tab");
System.out.println("prepare ... ok");
ResultSet rs = pstmt.executeQuery();
System.out.println("executeQuery ... ok");

rs.next();
java.sql.Array array = rs.getArray(1);
System.out.println("getArray() ... ok");
pstmt.close();

/*
 * The user can now materialize the data into either
 * an array or else a ResultSet. If the collection elements
 * are primitives then the array should be an array of primitives,
 * not Objects. Mapping data can be provided at this point.
 */

Object obj = array.getArray((long) 1, 2);

int [] intArray = (int []) obj;   // cast it to an array of ints
int i;
for (i=0; i < intArray.length; i++)
   {
   System.out.println("integer element = " + intArray[i]);
   }
pstmt.close();

The java.sql.Array array = rs.getArray(1) statement instantiates a java.sql.Array object. Data is not converted at this point.

The Object obj = array.getArray((long) 1, 2) statement converts data into an array of integers (int types, not Integer objects). Because the getArray() method has been called with index and count values, only a subset of data is returned.