最近在學習一個項目,就是網上流傳的e-shop,學到使用分頁插件的時候,突然卡主了,我都跟着視訊走的,出現這種問題,真的是一臉懵 X,要知道這種整合項目中出現異常,要不就是jar包沖突,要不就是配置檔案哪個地方不對,這樣找起來,沒有頭緒,簡直就是折騰,最開始我的mybatis全局配置檔案是這樣寫的:
運作taotao-manager出現以下異常:
後面還有一行關鍵描述:
Cause: java.lang.ClassCastException: com.github.pagehelper.PageHelper cannot be cast to org.apache.ibatis.plugin.Interceptor
意思就是說這個分頁插件的Interceptor沒有被實作
看一下我的pagehelper的版本 以及com.github.pagehelper.PageHelper類
pageHelper是如何在mybatis中工作呢,是通過mybatis的pulgin實作了Interceptor接口,進而獲得要執行的sql語句實作分頁技術,而我們的PageHelper5.0.0版本中的這個類,并沒有出現implements Interceptor,我們再來看下pagehelper這個包下的其他類,我們發現,有個類很像我們要的,我們進去一看,果然是它:
是以,我們修改我們的mybatis全局配置檔案SqlMapConfig.xml如下:
我們再次啟動我們的項目:
我去,這個會話工程"sqlSessionFactory"怎麼又出來了,我們往後翻,發現有個關鍵描述:
Error parsing SQL Mapper Configuration. Cause: com.github.pagehelper.PageException: java.lang.ClassNotFoundException: mysql
沒有發現mysql這個類,太折騰了,我也不想檢查其他jar包是否版本不對了,這個後面有時間再去研究,網上說,PageHelper插件4.0.0以後的版本支援自動識别使用的資料庫,可以不用配置 這,抱着僥幸的心理,我再一次試了試:
沒問題了,項目正常跑起來了
附錄:
使用tomcat插件運作的時候可能會出現日志列印方面的異常:
這時候在Test測試類中加下面這行代碼就可以了;
BasicConfigurator.configure();
其實還有一種方式,就是寫入絕對路徑中,這裡不做研究,感興趣的可以自行搜尋
引用部落格: http://blog.csdn.net/appleyk/article/details/77318175