alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.94k stars 8.57k forks source link

Generic getObject method in DruidPooledResultSet #1527

Open ArronDLin opened 7 years ago

ArronDLin commented 7 years ago

Is there any good reason that the generic getObject method in DruidPooledResultSet is not implemented but just throw SQLFeatureNotSupportedException?

    public <T> T getObject(int columnIndex, Class<T> type) throws SQLException {
        throw new SQLFeatureNotSupportedException();
    }

We have been suffering from the below exception when using Spring BeanPropertyRowMapper to map a field which is an enum.

DEBUG [JdbcUtils.java:203] JDBC driver does not support JDBC 4.1 'getObject(int, Class)' method
java.sql.SQLFeatureNotSupportedException
    at com.alibaba.druid.pool.DruidPooledResultSet.getObject(DruidPooledResultSet.java:1767)
    at org.springframework.jdbc.support.JdbcUtils.getResultSetValue(JdbcUtils.java:197)
    at org.springframework.jdbc.core.BeanPropertyRowMapper.getColumnValue(BeanPropertyRowMapper.java:337)
    at org.springframework.jdbc.core.BeanPropertyRowMapper.mapRow(BeanPropertyRowMapper.java:265)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:93)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:60)
    at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:693)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:680)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:707)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:757)
    at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:192)
    at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:204)
    at org.macula.plugins.admin.base.service.impl.SettingSynchronizationServiceImpl.diffOverview(SettingSynchronizationServiceImpl.java:89)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
p0mp0k0 commented 5 years ago

这些issues没人回复,也没人关闭,也完全无说明,不知道什么意思?