Bug? report : PreparedStatement.setObject(java.util.Date) don't work

Поиск
Список
Период
Сортировка
От 雨森郷太郎
Тема Bug? report : PreparedStatement.setObject(java.util.Date) don't work
Дата
Msg-id 3a69fa320711090848n7d51dc57td54f23e0754679cb@mail.gmail.com
обсуждение исходный текст
Ответы Re: Bug? report : PreparedStatement.setObject(java.util.Date) don't work  (dmp <danap@ttc-cmc.net>)
Re: Bug? report : PreparedStatement.setObject(java.util.Date) don't work  (Oliver Jowett <oliver@opencloud.com>)
Список pgsql-jdbc
Hello.

I've faced problem similar to http://archives.postgresql.org/pgsql-jdbc/2007-06/msg00070.php

Source:
-------------------------------------------------------------------------
package test;

import java.sql.*;
import java.util.*;

public class TestDate{
public static void main(String[] ags){
try{
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection(
"jdbc:postgresql:dbname",
"user",
"pass");

PreparedStatement stmt = con.prepareStatement("select * from table_name where column_name = ?");
stmt.setObject(1, new java.util.Date());
ResultSet rs = stmt.executeQuery();

while(rs.next ()){
System.out.println( rs.getDate(1) );
}
}catch(Exception e){
e.printStackTrace();
}
}
}

-------------------------------------------------------------------------

Message:
-------------------------------------------------------------------------
org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of java.util.Date. Use setObject() with an explicit Types value to specify the type to use.
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1737)
at test.TestDate.main(TestDate.java:16)
-------------------------------------------------------------------------

It seemed org.postgresql.jdbc2.AbstractJdbc2Statement#setObject(int, Object) can't
map java.util.Date to java.sql.Types#DATE.
So I modified AbstractJdbc2Statement.java to accept java.util.Date,then it worked.

Modification:
-------------------------------------------------------------------------
diff postgresql-jdbc-8.2-506.src/org/postgresql/jdbc2/AbstractJdbc2Statement.java postgresql-jdbc-8.2-506.src_mod/org/postgresql/jdbc2/AbstractJdbc2Statement.java
1717a1718,1719
> else if (x instanceof java.util.Date)
> setDate(parameterIndex, new java.sql.Date(((java.util.Date)x).getTime()));
-------------------------------------------------------------------------

Is this good solution?
Please advice.

Gotaro AMENOMORi

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Thomas Hallgren
Дата:
Сообщение: Re: gborg -> pgfoundry
Следующее
От: dmp
Дата:
Сообщение: Re: Bug? report : PreparedStatement.setObject(java.util.Date) don't work