Re: bug in jdbc

Поиск
Список
Период
Сортировка
От dmp
Тема Re: bug in jdbc
Дата
Msg-id 4E63A7C4.3040909@ttc-cmc.net
обсуждение исходный текст
Ответ на bug in jdbc  (luvar@plaintext.sk)
Ответы Re: bug in jdbc  (dmp <danap@ttc-cmc.net>)
Список pgsql-jdbc
luvar@plaintext.sk wrote:
> Hi, I have executed some update query and I have requested to return generated id...
>
> statement.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
> ResultSet ids  = statement.getGeneratedKeys();
> ids.next();
> ids.getInt(1);
>
> It will fail with this exception:
>
> 19:03:50,300         WARN ObjectBrowser:254 - Bad value for type int : /home/luvar/output.svg
> org.postgresql.util.PSQLException: Bad value for type int : /home/luvar/output.svg
>     at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toInt(AbstractJdbc2ResultSet.java:2759)
>     at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getInt(AbstractJdbc2ResultSet.java:2003)
> .....
>
>
> I am using maven. Used jdbc version:
>
>     <dependency>
>     <groupId>postgresql</groupId>
>     <artifactId>postgresql</artifactId>
>     <version>9.0-801.jdbc4</version>
>     </dependency>
>
> I have table constructed in such way, that id (bigserial typed) column is NOT first column. It is second and first
columnof my table is "url" column to which I try insert "/home/luvar/output.svg" value. 
>
> Can you have a look and confirm this bug to me, or there is no bug and something I am doing bad?
>

I have confirmed the behavior you have indicated in a test case that
is not using Maven, but rather the JDBC directly.

Though I have not reviewed the behavior of statement.executeUpdate(query,
Statement.RETURN_GENERATED_KEYS) thoroughly I suggest you try the
modifications that I made to your example code that helped me to understand
more fully what is happening. I can not address if this is a bug or not.

sqlStatement.executeUpdate(sqlStatementString, Statement.RETURN_GENERATED_KEYS);
resultSet = sqlStatement.getGeneratedKeys();
tableMetaData = resultSet.getMetaData();
while (resultSet.next())
{
    for (int i = 1; i < tableMetaData.getColumnCount() + 1; i++)
    {
       System.out.println(i + " " + tableMetaData.getColumnName(i));
       System.out.println(resultSet.getString(colNameString));
    }
}

Output:
Connection Created
INSERT INTO "public"."key_table21" ("text","id") VALUES ('aaa',33)
1 text
aaa
2 id
33
Connection Closed

danap.

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

Предыдущее
От: luvar@plaintext.sk
Дата:
Сообщение: bug in jdbc
Следующее
От: dmp
Дата:
Сообщение: Re: bug in jdbc