Re: PreparedStatement.setXXX

From: sumit shah <shah(at)ucla(dot)edu>
To: Roberta Campo <rcampo(at)mm(dot)eutelsat(dot)org>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: PreparedStatement.setXXX
Date: 2005-07-18 14:16:48
Message-ID: 2729829C-2B72-43A0-A6E3-CCCABE5465F6@ucla.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Roberta:

Here is my utility code that implements java.sql.Array:

public static Array convertStringToPgSqlArray(final String[] s)
throws Exception {
if(s == null || s.length < 1) return null;
Array a = new Array() {
public String getBaseTypeName() {return "text";}
public int getBaseType() {return 0;}
public Object getArray() {return null;}
public Object getArray(Map<String, Class<?>> map) {return null;}
public Object getArray(long index, int count) {return null;}
public Object getArray(long index, int count, Map<String,
Class<?>> map) {return null;}
public ResultSet getResultSet() {return null;}
public ResultSet getResultSet(Map<String, Class<?>> map)
{return null;}
public ResultSet getResultSet(long index, int count) {return
null;}
public ResultSet getResultSet(long index, int count,
Map<String, Class<?>> map) {return null;}

public String toString() {
String p = "{";
if(s.length == 0) {
} else {
for(int i = 0; i < s.length - 1; i++) p += s[i] + ",";
p += "'" + s[s.length - 1] + "'";
}
p+="}";
return p;
}
};
return a;
}

public static Array convertIntegerToPgSqlArray(final int[] p) {
if(p == null || p.length < 1) return null;
Array a = new Array() {
public String getBaseTypeName() {return "int4";}
public int getBaseType() {return 0;}
public Object getArray() {return null;}
public Object getArray(Map<String, Class<?>> map) {return null;}
public Object getArray(long index, int count) {return null;}
public Object getArray(long index, int count, Map<String,
Class<?>> map) {return null;}
public ResultSet getResultSet() {return null;}
public ResultSet getResultSet(Map<String, Class<?>> map)
{return null;}
public ResultSet getResultSet(long index, int count) {return
null;}
public ResultSet getResultSet(long index, int count,
Map<String, Class<?>> map) {return null;}

public String toString() {
String fp = "{";
if(p.length == 0) {
} else {
for(int i = 0; i < p.length - 1; i++) fp += p[i] + ",";
fp += p[p.length - 1];
}
fp+="}";
return fp;
}
};
return a;
}

On Jul 18, 2005, at 6:52 AM, Dave Cramer wrote:

> Roberta,
>
> You can force version 2 protocol with protocolVersion=2
>
> or you can implement the Array interface.
>
> For putting information into the db, I would imagine all you need
> to implement is everything up to getResultSet()
>
> Dave
> On 18-Jul-05, at 7:55 AM, Roberta Campo wrote:
>
>> We're moving from Postgresql7.4 to v.8.0.3,
>> with some problems rising from the strictness of the new driver
>> postgresql-8.0-311.jdbc3.jar.
>>
>> We used to call a function f(integer[]) using
>> PreparedStatement.setString('{...}')
>> but now the types are not compatible.
>>
>>
>> How should we fix that ?
>>
>> A. Using the setArray method :
>> This requires the implementation of the interface java.sql.Array :
>> - which methods are required in this case ?
>> - is there any available implementation of this class ? :)
>>
>> B. Using the setObject(colnumber, String, type ) method :
>> This should require less implementation than the Array, shouldn't
>> it ?
>> - how to specify the type int[] ?
>>
>> C. Using different drivers / protocol versions / ...
>>
>> Thanks,
>> Roberta
>>
>>
>>
>> ---------------------------(end of
>> broadcast)---------------------------
>> TIP 6: explain analyze is your friend
>>
>>
>
>
>
> Dave Cramer
> davec(at)postgresintl(dot)com
> www.postgresintl.com
> ICQ #14675561
> jabber davecramer(at)jabber(dot)org
> ph (519 939 0336 )
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Christian Cryder 2005-07-18 17:50:58 Timestamp Conversion Woes Redux
Previous Message Dave Cramer 2005-07-18 13:52:37 Re: PreparedStatement.setXXX