Re: PreparedStatement for set membership (The IN operator)

From: Daron Ryan <daron(dot)ryan(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: PreparedStatement for set membership (The IN operator)
Date: 2011-04-05 13:42:46
Message-ID: 4D9B1C56.7010709@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On 5/04/2011 10:26 PM, Heikki Linnakangas wrote:
> On 05.04.2011 15:39, Daron Ryan wrote:
>> Thanks Heikki. I have tried using the setArray method but I am still
>> running into an error.
>>
>> Exception in thread "main" org.postgresql.util.PSQLException: Unknown
>> type _INTEGER.
>> at
>> org.postgresql.jdbc2.AbstractJdbc2Statement.setArray(AbstractJdbc2Statement.java:2800)
>>
>>
>> at dictionary.test.Main.main(Main.java:85)
>>
>> This is the Array implementation I have created.
>> http://pastebin.com/tkzPRL4A
>
> Starting with JDBC4, you can use conn.createArrayOf() function. No
> need to create a custom Array class anymore. This is what we have in
> the test suite:
>
> public void testCreateArrayOfInt() throws SQLException {
> PreparedStatement pstmt = _conn.prepareStatement("SELECT
> ?::int[]");
> Integer in[] = new Integer[3];
> in[0] = 0;
> in[1] = -1;
> in[2] = 2;
> pstmt.setArray(1, _conn.createArrayOf("int4", in));
>
> ResultSet rs = pstmt.executeQuery();
> assertTrue(rs.next());
> Array arr = rs.getArray(1);
> Integer out[] = (Integer [])arr.getArray();
>
> assertEquals(3, out.length);
> assertEquals(0, out[0].intValue());
> assertEquals(-1, out[1].intValue());
> assertEquals(2, out[2].intValue());
> }
>
Thanks, my code is working now. I changed my baseTypeName to int4 and
after a few more fixes my code worked. Then I tried the
Connection.createArrayOf method and that worked too.

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Achilleas Mantzios 2011-04-05 15:04:17 time and timetz : Do I miss something?
Previous Message Heikki Linnakangas 2011-04-05 12:56:36 Re: PreparedStatement for set membership (The IN operator)