Re: how to create an object of java.sql.Array

Lists: pgsql-jdbc
From: "jessica xingzc_he" <xingzc_he(at)hotmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: how to create an object of java.sql.Array
Date: 2004-11-18 22:00:21
Message-ID: BAY24-F19C969495716B068E0A1839CC20@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

hi guys,

support the data type of a column is int[], i can use
ResultSet.updateArray(int, Array) to update it, right? My question is how to
create an instance of java.sql.Array to pass in updateArray?

BTW, does 7.4.x postgresql jdbc driver support RowSet?

thanks
zhenchang


From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: jessica xingzc_he <xingzc_he(at)hotmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: how to create an object of java.sql.Array
Date: 2004-11-18 22:22:37
Message-ID: 419D20AD.8090507@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

jessica xingzc_he wrote:

> support the data type of a column is int[], i can use
> ResultSet.updateArray(int, Array) to update it, right? My question is
> how to create an instance of java.sql.Array to pass in updateArray?

The driver does not really support setArray() / updateArray() for
arbitary Array implementations. I had a patch to fix this ages ago but
it has rotted since then, and was never really the right way to do it
anyway.

You can provide your own implementation of Array and it should work so
long as:

- it implements Array.getBaseTypeName(), returning the underlying
element type name ("int" in your case).
- it implements Array.toString(), returning an array constant formatted
as the postgresql backend expects (e.g. "{1,2,3}").

> BTW, does 7.4.x postgresql jdbc driver support RowSet?

As I understand it, RowSet isn't meant to be implemented by drivers, it
is a layer that sits on top of the driver. I don't know how well
implementations of RowSet work with the current driver.

-O