mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
Merge pull request #3429 from yidasanqian/master
Improve getObject support, fixed #3302,#3340,#3393
This commit is contained in:
@@ -27,7 +27,6 @@ import java.sql.ResultSet;
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.sql.RowId;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.SQLFeatureNotSupportedException;
|
||||
import java.sql.SQLWarning;
|
||||
import java.sql.SQLXML;
|
||||
import java.sql.Statement;
|
||||
@@ -1763,11 +1762,21 @@ public final class DruidPooledResultSet extends PoolableWrapper implements Resul
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getObject(int columnIndex, Class<T> type) throws SQLException {
|
||||
return rs.getObject(columnIndex, type);
|
||||
try {
|
||||
return rs.getObject(columnIndex, type);
|
||||
} catch (Throwable t) {
|
||||
throw checkException(t);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getObject(String columnLabel, Class<T> type) throws SQLException {
|
||||
return rs.getObject(columnLabel, type);
|
||||
try {
|
||||
return rs.getObject(columnLabel, type);
|
||||
} catch (Throwable t) {
|
||||
throw checkException(t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@ import java.sql.ResultSet;
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.sql.RowId;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.SQLFeatureNotSupportedException;
|
||||
import java.sql.SQLWarning;
|
||||
import java.sql.SQLXML;
|
||||
import java.sql.Statement;
|
||||
@@ -1548,15 +1547,20 @@ public class ResultSetProxyImpl extends WrapperProxyImpl implements ResultSetPro
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getObject(int columnIndex, Class<T> type) throws SQLException {
|
||||
FilterChainImpl chain = createChain();
|
||||
Object value = chain.resultSet_getObject(this, columnIndex, type);
|
||||
T value = chain.resultSet_getObject(this, columnIndex, type);
|
||||
recycleFilterChain(chain);
|
||||
return (T) value;
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getObject(String columnLabel, Class<T> type) throws SQLException {
|
||||
throw new SQLFeatureNotSupportedException();
|
||||
FilterChainImpl chain = createChain();
|
||||
T value = chain.resultSet_getObject(this, columnLabel, type);
|
||||
recycleFilterChain(chain);
|
||||
return value;
|
||||
}
|
||||
|
||||
public int getCloseCount() {
|
||||
@@ -1604,6 +1608,7 @@ public class ResultSetProxyImpl extends WrapperProxyImpl implements ResultSetPro
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> T unwrap(Class<T> iface) throws SQLException {
|
||||
if (iface == ResultSetProxy.class || iface == ResultSetProxyImpl.class) {
|
||||
return (T) this;
|
||||
@@ -1612,6 +1617,7 @@ public class ResultSetProxyImpl extends WrapperProxyImpl implements ResultSetPro
|
||||
return super.unwrap(iface);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isWrapperFor(Class<?> iface) throws SQLException {
|
||||
if (iface == ResultSetProxy.class || iface == ResultSetProxyImpl.class) {
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user