JDBC: Handle ResultSet#getBoolean with integer values (1=true,0=false)
Closed this issue · 0 comments
eolivelli commented
BUG REPORT
- Please describe the issue you observed:
getBoolean() on a integer column returns always "false" because we are using Boolean.parseBoolean.
These are the official JDBC specs:
/**
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>boolean</code> in the Java programming language.
*
* <P>If the designated column has a datatype of CHAR or VARCHAR
* and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
* and contains a 0, a value of <code>false</code> is returned. If the designated column has a datatype
* of CHAR or VARCHAR
* and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
* and contains a 1, a value of <code>true</code> is returned.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>false</code>
* @exception SQLException if the columnIndex is not valid;
* if a database access error occurs or this method is
* called on a closed result set
*/