1. 程式人生 > >Mybatis異常總結

Mybatis異常總結

nes batis 是否 一個 錯誤 port mybatis異常 from 兩個

1.異常

nested exception is org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database. Cause: java.lang.UnsupportedOperationException\n### The error may exist in class path resource [conf/mapper/com/ppdai/cbd/thirdparty/userthirddata/NoInsertColumnsQueryMapper.xml]\n### The error may involve com.ppdai.cbd.thirdparty.dao.mapper.userthirddata.NoInsertColumnsMapper.selectDataCutFill\n### The error occurred while handling results\n### SQL: SELECT * from no_insertcolumns WHERE updatestatus = 0;\n### Cause: java.lang.UnsupportedOperationException

原因

      SELECT * from 表名 WHERE updatestatus = 0;

mybatis 設置resultType為java.util.List 因為最終結果會是list,但是mybatis的resultType指的是單條記錄的類型,所以應該改成 java.util.Map或者對象。

2.異常

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

一般的原因是Mapper interface和xml文件的定義對應不上,需要檢查包名,namespace,函數名稱等能否對應上,需要比較細致的對比,我經常就是寫錯了一兩個字母搞的很長時間找不到錯誤

按以下步驟一一執行:

1:檢查xml文件所在的package名稱是否和interface對應的package名稱一一對應

2:檢查xml文件的namespace是否和xml文件的package名稱一一對應

3:檢查函數名稱能否對應上

4:去掉xml文件中的中文註釋

5:隨意在xml文件中加一個空格或者空行然後保存

一般來說到此就可以排除錯誤了 檢查xml和java mapper是不是匹配。

Mybatis異常總結