From: | Kris Jurka <books(at)ejurka(dot)com> |
---|---|
To: | Miroslav Šulc <miroslav(dot)sulc(at)startnet(dot)cz> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: JDBC and arrays |
Date: | 2007-02-02 07:07:43 |
Message-ID: | Pine.BSO.4.64.0702020154310.31728@leary2.csoft.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
On Fri, 2 Feb 2007, Miroslav Šulc wrote:
> I tried to find some info on how to work with arrays using PostgreSQL JDBC
> driver but didn't find anything useful except that I can implement
> java.sql.Array to get support for arrays. Can someone, please, send me a link
> on how to write and read array data using PostgreSQL JDBC driver or give me a
> brief explanation? I'm also interested how to work with inet[] arrays as they
> do not seem to be directly supported by JDBC API.
Reading arrays is pretty straightforward:
ResultSet rs = stmt.executeQuery("SELECT '{a,b}'::text[]");
rs.next();
Array arr = rs.getArray(1);
String s[] = (String)arr.getArray();
Writing arrays is not easy because prior to the JDBC4 spec there was no
way to create java.sql.Array objects without creating a class that
implements java.sql.Array yourself. Now JDBC4 offers
Connection.createArrayOf() which unfortunately we haven't implemented yet.
So while there is a light at the end of the tunnel you're still stuck
implementing java.sql.Array yourself. Check the mailing list for examples
of that.
Currently arrays of non-standard datatypes like inet are not supported.
Seems possible to do if you were willing to use PGobject for unknown
types, but no one has done it.
Also more complicated things like multi-dimensional arrays are note
supported.
Kris Jurka
From | Date | Subject | |
---|---|---|---|
Next Message | Miroslav Šulc | 2007-02-02 09:31:39 | Re: JDBC and arrays |
Previous Message | Kris Jurka | 2007-02-02 02:40:16 | Re: getArray() and char[] |