Oracle+MybatisPlus逆向工程运行时出现java.lang.AbstractMethodError: Method oracle/jdbc/driver/OracleResultSetI

异常全文:

java.lang.AbstractMethodError: Method oracle/jdbc/driver/OracleResultSetImpl.getObject(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; is abstract
 at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0]
 at com.zaxxer.hikari.pool.HikariProxyResultSet.getObject(HikariProxyResultSet.java) ~[HikariCP-3.4.5.jar:na]
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_241]
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_241]
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_241]
 at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_241]
 at org.apache.ibatis.logging.jdbc.ResultSetLogger.invoke(ResultSetLogger.java:69) ~[mybatis-3.5.5.jar:3.5.5]
 at com.sun.proxy.$Proxy159.getObject(Unknown Source) ~[na:na]
 at org.apache.ibatis.type.LocalDateTimeTypeHandler.getNullableResult(LocalDateTimeTypeHandler.java:38) ~[mybatis-3.5.5.jar:3.5.5]
 at org.apache.ibatis.type.LocalDateTimeTypeHandler.getNullableResult(LocalDateTimeTypeHandler.java:28) ~[mybatis-3.5.5.jar:3.5.5]
 at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:85) ~[mybatis-3.5.5.jar:3.5.5]
 at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyAutomaticMappings(DefaultResultSetHandler.java:560) ~[mybatis-3.5.5.jar:3.5.5]
 at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:402) ~[mybatis-3.5.5.jar:3.5.5]
 at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:354) ~[mybatis-3.5.5.jar:3.5.5]
 at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:328) ~[mybatis-3.5.5.jar:3.5.5]
 at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:301) ~[mybatis-3.5.5.jar:3.5.5]
 at org.apache.ibatis.executor.resultset.Defaul

  最近开发项目得时候,遇到一个很让人头疼得问题
用PostMan测试Controller方法得时候一直给我报上面那个错误

  在网上找了半天的解决方法也没用,大多数人给出的方法就是oralce驱动包有问题,版本过高等等。。。

  试过了各种方法还是没解决。

  试了很久终于找到方法所以写个博客记录一下

-------------------------------------------正文---------------------------------------
原因:
  因为我的三层是MybatisPlus逆向工程自动生成的,默认时间格式是LocalDateTime而不是Date
在这里插入图片描述  我们在做用户信息查询的时候,查询出来的时间都是时间戳的格式,系统无法自动转换为LocalDateTime格式,就造成了上面的那个错误。

解决方法:
  自定义一个Mybatis日期转换器,继承 LocalDateTimeTypeHandler。

    @Component
    public class LocalDateTimeConvertor extends LocalDateTimeTypeHandler {
        @Override
        public void setNonNullParameter(PreparedStatement ps, int i, LocalDateTime parameter, JdbcType jdbcType) throws SQLException {
            Timestamp timestamp = Timestamp.valueOf(parameter);
            ps.setObject(i, timestamp);
        }
        @Override
        public LocalDateTime getNullableResult(ResultSet rs, String columnName) throws SQLException {
            Timestamp timestamp = rs.getTimestamp(columnName);
            if (timestamp == null) {
                return null;
            }
            return timestamp.toLocalDateTime();
        }
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值