天天看點

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

最近在學習一個項目,就是網上流傳的e-shop,學到使用分頁插件的時候,突然卡主了,我都跟着視訊走的,出現這種問題,真的是一臉懵 X,要知道這種整合項目中出現異常,要不就是jar包沖突,要不就是配置檔案哪個地方不對,這樣找起來,沒有頭緒,簡直就是折騰,最開始我的mybatis全局配置檔案是這樣寫的:

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

運作taotao-manager出現以下異常:

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

後面還有一行關鍵描述:

Cause: java.lang.ClassCastException: com.github.pagehelper.PageHelper cannot be cast to org.apache.ibatis.plugin.Interceptor

意思就是說這個分頁插件的Interceptor沒有被實作

看一下我的pagehelper的版本  以及com.github.pagehelper.PageHelper類

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

pageHelper是如何在mybatis中工作呢,是通過mybatis的pulgin實作了Interceptor接口,進而獲得要執行的sql語句實作分頁技術,而我們的PageHelper5.0.0版本中的這個類,并沒有出現implements Interceptor,我們再來看下pagehelper這個包下的其他類,我們發現,有個類很像我們要的,我們進去一看,果然是它:

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

是以,我們修改我們的mybatis全局配置檔案SqlMapConfig.xml如下:

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

我們再次啟動我們的項目:

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

我去,這個會話工程"sqlSessionFactory"怎麼又出來了,我們往後翻,發現有個關鍵描述:

Error parsing SQL Mapper Configuration. Cause: com.github.pagehelper.PageException: java.lang.ClassNotFoundException: mysql

沒有發現mysql這個類,太折騰了,我也不想檢查其他jar包是否版本不對了,這個後面有時間再去研究,網上說,PageHelper插件4.0.0以後的版本支援自動識别使用的資料庫,可以不用配置     這,抱着僥幸的心理,我再一次試了試:

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

沒問題了,項目正常跑起來了

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題
mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題
mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

附錄:

使用tomcat插件運作的時候可能會出現日志列印方面的異常:

mybatis mysql 分頁插件_使用MyBatis分頁插件PageHelper遇到的問題

這時候在Test測試類中加下面這行代碼就可以了;

BasicConfigurator.configure();

其實還有一種方式,就是寫入絕對路徑中,這裡不做研究,感興趣的可以自行搜尋

引用部落格:   http://blog.csdn.net/appleyk/article/details/77318175