mirror of
https://github.com/moparisthebest/JdbcMapper
synced 2024-12-22 15:28:51 -05:00
Handle booleans same way in CompilingResultSetMapper as ResultSetMapper
This commit is contained in:
parent
2e6fce9786
commit
61010ec39e
@ -257,7 +257,7 @@ public class CompilingRowToObjectMapper<T> extends RowToObjectMapper<T> {
|
|||||||
java.append("rs.getInt(").append(index).append(")");
|
java.append("rs.getInt(").append(index).append(")");
|
||||||
return;
|
return;
|
||||||
case TypeMappingsFactory.TYPE_BOOLEAN:
|
case TypeMappingsFactory.TYPE_BOOLEAN:
|
||||||
java.append("rs.getInt(").append(index).append(") ? Boolean.TRUE : Boolean.FALSE");
|
java.append("getBooleanYN(rs, ").append(index).append(")");
|
||||||
return;
|
return;
|
||||||
case TypeMappingsFactory.TYPE_INT_OBJ:
|
case TypeMappingsFactory.TYPE_INT_OBJ:
|
||||||
java.append("getObjectInt(rs, ").append(index).append(")");
|
java.append("getObjectInt(rs, ").append(index).append(")");
|
||||||
@ -278,7 +278,7 @@ public class CompilingRowToObjectMapper<T> extends RowToObjectMapper<T> {
|
|||||||
java.append("getObjectShort(rs, ").append(index).append(")");
|
java.append("getObjectShort(rs, ").append(index).append(")");
|
||||||
return;
|
return;
|
||||||
case TypeMappingsFactory.TYPE_BOOLEAN_OBJ:
|
case TypeMappingsFactory.TYPE_BOOLEAN_OBJ:
|
||||||
java.append("getObjectBoolean(rs, ").append(index).append(")");
|
java.append("getObjectBooleanYN(rs, ").append(index).append(")");
|
||||||
return;
|
return;
|
||||||
case TypeMappingsFactory.TYPE_STRING:
|
case TypeMappingsFactory.TYPE_STRING:
|
||||||
case TypeMappingsFactory.TYPE_XMLBEAN_ENUM:
|
case TypeMappingsFactory.TYPE_XMLBEAN_ENUM:
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
package com.moparisthebest.jdbc.util;
|
package com.moparisthebest.jdbc.util;
|
||||||
|
|
||||||
|
import com.moparisthebest.jdbc.MapperException;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Time;
|
import java.sql.Time;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
import static com.moparisthebest.jdbc.UpdateableDTO.NO;
|
||||||
|
import static com.moparisthebest.jdbc.UpdateableDTO.YES;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by mopar on 5/16/17.
|
* Created by mopar on 5/16/17.
|
||||||
*/
|
*/
|
||||||
@ -46,6 +51,26 @@ public class ResultSetUtil {
|
|||||||
return rs.wasNull() ? null : (ret ? Boolean.TRUE : Boolean.FALSE);
|
return rs.wasNull() ? null : (ret ? Boolean.TRUE : Boolean.FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Boolean getObjectBooleanYN(final ResultSet rs, final int index) throws SQLException {
|
||||||
|
try {
|
||||||
|
return getObjectBoolean(rs, index);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
// if we are here, it wasn't a boolean or null, so try to grab a string instead
|
||||||
|
final String bool = rs.getString(index);//.toUpperCase(); // do we want it case-insensitive?
|
||||||
|
final boolean ret = YES.equals(bool);
|
||||||
|
if (!ret && !NO.equals(bool))
|
||||||
|
throw new MapperException(String.format("Implicit conversion of database string to boolean failed on column '%d'. Returned string needs to be 'Y' or 'N' and was instead '%s'.", index, bool));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean getBooleanYN(final ResultSet rs, final int index) throws SQLException {
|
||||||
|
final Boolean ret = getObjectBooleanYN(rs, index);
|
||||||
|
if(ret == null)
|
||||||
|
throw new MapperException(String.format("Implicit conversion of database string to boolean failed on column '%d'. Returned string needs to be 'Y' or 'N' and was instead 'null'. If you want to accept null values, make it an object Boolean instead of primitive boolean.", index));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
public static Timestamp getTimestamp(final ResultSet _resultSet, final Calendar _cal, final int index) throws SQLException {
|
public static Timestamp getTimestamp(final ResultSet _resultSet, final Calendar _cal, final int index) throws SQLException {
|
||||||
if (null == _cal)
|
if (null == _cal)
|
||||||
return _resultSet.getTimestamp(index);
|
return _resultSet.getTimestamp(index);
|
||||||
|
Loading…
Reference in New Issue
Block a user