Re: JDBC problem with dates and ANYELEMENT type

From: Kris Jurka <books(at)ejurka(dot)com>
To: Peter <peter(at)greatnowhere(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: JDBC problem with dates and ANYELEMENT type
Date: 2009-04-24 20:20:43
Message-ID: 49F21F1B.7010803@ejurka.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Peter wrote:
>>> Any suggestions how to work around this so we can still use
>>> ANYELEMENT and pass in DATE?
>
>> You can put a cast into the query itself "SELECT ?::date".
>
> Nah... that's no good. The same query string is used for many
> different types in my app - such approach would require me to parse
> the SQL string and append cast to date when argument is
> java.sql.Date. I'll leave this as last-ditch approach.

The other way of providing explicit type information is to create an
object that extends PGobject. Something like:

import java.util.Date;
import java.text.SimpleDateFormat;
import org.postgresql.util.PGobject;

class MyDateWrapper extends PGobject {

public MyDateWrapper(java.util.Date d) {
setType("date");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
setValue(df.format(d));
}
}

Then call PreparedStatement.setObject with an instance of MyDateWrapper.

Kris Jurka

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Kris Jurka 2009-04-25 00:46:18 Re: Here's a fix to AbstractJdbc3Statement.getGeneratedKeys
Previous Message Thomas Kellerer 2009-04-24 17:33:20 Re: Here's a fix to AbstractJdbc3Statement.getGeneratedKeys