Spring boot mybatis項目啓動後一直刷日誌的bug修復……

最近接手一個項目,使用的框架是springboot+mybatis;java

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

而後呢,有時候作新功能的時候,往xml文件中增長新的sql邏輯的時候,總會由於疏忽,或者手誤 等緣由,形成一些錯誤sql

具體表現就是:eclipse的控制檯一直在快速的刷日誌,也沒有看到什麼報錯的東西,就是刷一些加載class文件的內容;apache

百度以後說是xml配置文件錯的,還有一些文章是說要去 源碼中的某個拋錯的地方增長斷點,但是每次加了斷點以後 啓動時根本沒有進入到斷點中去;springboot

最後仍是使用一個通用的找bug方式:mybatis

  排除法:依次將本身新修改的內容註釋掉,而後逐步定位問題點,簡單粗暴,可是很是有用!app

這裏先記錄下,由於我每次都沒有優先想到這個辦法。。。。框架

 

版本二:eclipse

AbstractBeanFactory這個抽象類裏面:getTypeForFactoryBean這個內部類:1465行 catch裏面依次增長斷點,查看異常信息:Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.DATETIMEui

 

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);

相關文章
相關標籤/搜索