zoukankan      html  css  js  c++  java
  • Spring boot mybatis项目启动后一直刷日志的bug修复……

    最近接手一个项目,使用的框架是springboot+mybatis;

    其中持久层是使用mybatis集成的,sql是配置在mapper.xml文件中;

    然后呢,有时候做新功能的时候,往xml文件中增加新的sql逻辑的时候,总会因为疏忽,或者手误 等原因,造成一些错误

    具体表现就是:eclipse的控制台一直在快速的刷日志,也没有看到什么报错的东西,就是刷一些加载class文件的内容;

    百度之后说是xml配置文件错的,还有一些文章是说要去 源码中的某个抛错的地方增加断点,可是每次加了断点之后 启动时根本没有进入到断点中去;

    最后还是使用一个通用的找bug方式:

      排除法:依次将自己新修改的内容注释掉,然后逐步定位问题点,简单粗暴,但是非常有用!

    这里先记录下,因为我每次都没有优先想到这个办法。。。。

     

    版本二:

    AbstractBeanFactory这个抽象类里面:getTypeForFactoryBean这个内部类:1465行 catch里面依次增加断点,查看异常信息:Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.DATETIME

     

    mybatis不认识DATETIME,要使用TIMESTAMP

    支持的类型详见:

    org.apache.ibatis.type.JdbcType  枚举类

    /*

    * This is added to enable basic support for the

    * ARRAY data type - but a custom type handler is still required

    */

    ARRAY(Types.ARRAY),

    BIT(Types.BIT),

    TINYINT(Types.TINYINT),

    SMALLINT(Types.SMALLINT),

    INTEGER(Types.INTEGER),

    BIGINT(Types.BIGINT),

    FLOAT(Types.FLOAT),

    REAL(Types.REAL),

    DOUBLE(Types.DOUBLE),

    NUMERIC(Types.NUMERIC),

    DECIMAL(Types.DECIMAL),

    CHAR(Types.CHAR),

    VARCHAR(Types.VARCHAR),

    LONGVARCHAR(Types.LONGVARCHAR),

    DATE(Types.DATE),

    TIME(Types.TIME),

    TIMESTAMP(Types.TIMESTAMP),

    BINARY(Types.BINARY),

    VARBINARY(Types.VARBINARY),

    LONGVARBINARY(Types.LONGVARBINARY),

    NULL(Types.NULL),

    OTHER(Types.OTHER),

    BLOB(Types.BLOB),

    CLOB(Types.CLOB),

    BOOLEAN(Types.BOOLEAN),

    CURSOR(-10), // Oracle

    UNDEFINED(Integer.MIN_VALUE + 1000),

    NVARCHAR(Types.NVARCHAR), // JDK6

    NCHAR(Types.NCHAR), // JDK6

    NCLOB(Types.NCLOB), // JDK6

    STRUCT(Types.STRUCT);

  • 相关阅读:
    JavaIO学习笔记(五)
    Java学习笔记(四)
    Java学习笔记(三)
    Java学习笔记(二)
    自己动手实现STL:前言
    Effective C++学习笔记 条款07:为多态基类声明virtual析构函数
    Effective C++学习笔记 条款06:如不想使用编译器自动生成的函数,就该明确拒绝
    Effective C++学习笔记 条款05:了解C++默默编写并调用的哪些函数
    Effective C++学习笔记 条款04:确定对象被使用前已先被初始化
    Effective C++学习笔记 条款02:尽量以const,enum,inline替换 #define
  • 原文地址:https://www.cnblogs.com/ning-blogs/p/6202841.html
Copyright © 2011-2022 走看看