向後兼容JDBC Specification 1.0不允許在JDBC驅動程序中添加Byte和Short對象類型。只有一個解決方案:java柺杖。
static public Integer getInteger(final ResultSet rs, final String columnName) throws SQLException {
final int value = rs.getInt(columnName);
return rs.wasNull() ? null : value;
}
或者
public <T> T getObjectValue(final ResultSet rs, final String columnName, final Class<T> clazz) throws SQLException {
final T value = rs.getObject(columnName, clazz);
return rs.wasNull() ? null : value;
}
而且
public final class ResultSetWrapper {
private final ResultSet rs;
public ResultSetWrapper(final ResultSet rs) {
this.rs = rs;
}
public ResultSet getResultSet() {
return rs;
}
public Boolean getBoolean(String label) throws SQLException {
// ...
}
public Byte getByte(String label) throws SQLException {
// ...
}
public Byte getShort(String label) throws SQLException {
// ...
}
// ...
}
這是很可悲。我們現在使用4.1規範,但仍保持與1.0版本的向後兼容性。我不關心兼容性。我厭倦了編寫ResultSet包裝器和sql util方法。 – Binakot