1. 程式人生 > >Mybatis自定義分頁外掛後報錯處理

Mybatis自定義分頁外掛後報錯處理

前端時間,模仿pageHelper作者的Mybatis分頁外掛,自己修改並優化了一下,放在專案裡執行後,卻報錯,報錯如下

Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
### Error opening session.  Cause: org.apache.ibatis.plugin.PluginException: Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named prepare. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)
### Cause: org.apache.ibatis.plugin.PluginException: Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named prepare. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromDataSource(DefaultSqlSessionFactory.java:100)
其實仔細看報錯提示,追到原始碼裡看一下就知道原因了,因為用了比較新或者是最新的MyBatis jar包,而我的攔截器程式碼又是比較老的寫法。在MyBatis新的jar包中,StatementHandler中的prepare方法有兩個引數,如下:Statement prepare(Connection connection, Integer transactionTimeout),而我的攔截器程式碼裡面卻只有一個引數,所以就導致獲取不到。解決方法便出來了,應該在分頁攔截器的規則裡面再追加一個Integer.class引數。如下:

@Intercepts({@Signature(type=StatementHandler.

class,method="prepare",args={Connection.class, Integer.class})})

以上就是記錄自己的分頁外掛的排錯過程,以便後來人方便查閱~

相關推薦

Mybatis定義外掛處理

前端時間,模仿pageHelper作者的Mybatis分頁外掛,自己修改並優化了一下,放在專案裡執行後,卻報錯,報錯如下 Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException

maven+mybatis+mybatis-generator+sql server 2005自動生成程式碼,加上定義外掛和批量插入更新外掛

第一步:準備需要的jar包。由於maven只要配置pom.xml就可以從倉庫下載jar包。因此我們首先配置pom.xml。 注意com.microsoft.sqlserver需要自己加入maven倉庫的。 <dependencies> ......

使用mybatis-generator新增定義外掛時提示無法例項化外掛

import org.mybatis.generator.api.CommentGenerator; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.PluginAdapter; impo

MyBatis攔截器定義外掛實現

MyBaits是一個開源的優秀的持久層框架,SQL語句與程式碼分離,面向配置的程式設計,良好支援複雜資料對映,動態SQL;MyBatis 是支援定製化 SQL、儲存過程以及高階對映的優秀的持久層框架。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以對配置和原

定義外掛

class Pagination(object): # 第一步 初始化頁面 def __init__(self,current_page_num,all_count,request,per_page_num=5,pager_count=11): """

定義1

dex forms con for type eth app public return using System; using System.Collections.Generic; using System.Linq; using System.Text; using

Python之路65-Django定義

python目錄一、XSS二、分頁1三、分頁2四、分頁3一、XSS有下面一段代碼,想將這段代碼中的字符串渲染到HTML頁面中,默認Django是不能這樣去操作的views.pydef user_list(request): page_str = """ <a href="/use

Django之定義

plugin style 定義 mage user_list .sh render 進行 blog 應用於各頁面中的分頁實現,實現的結果如下圖 1.先自定義一個有關分頁的PageInfo類 1 class PageInfo(object): 2 3

python/Djangof定義

from r+ else active count() 返回 log 多少 pan python/Djangof分頁與自定義分頁 Django分頁 1 ##============================================分頁========

laravel定義

data current clas 數字 rep 當前頁 col 自己 collect   對於laravel分頁,自帶一個paginate的方法,很好用,但是也是有局限性的。 所以自己針對於此寫了一個自己的分頁 <?php  namespace ...;use

laravel 定義 offset 和 limit 的使用

有一個 信息 代碼 自定義 快速 技術 多少 信息技術 只需要 laravel 本身有一個自帶的快速分頁方法 paginate,只需要傳入每頁顯示多少條數據就可以 了,但是如果想使用自定義從哪裏開始呢,這時候就可以使用offset 和 limit 的組合,offset 設置

Laravel 定義、可以調整、顯示數目

wid ima subst es2017 cti 選擇 admin custom -m {{-- 增加輸入框,跳轉任意頁碼和顯示任意條數 --}} <ul class="pagination pagination-sm"> <li>

Python定義程序

當前頁 start itl ati doc line mod 防止 分頁 為了防止XSS即跨站腳本攻擊,需要加上 safe # 路由 from django.conf.urls import url from django.contrib import

定義

mat 部分 pty use span 顯示 自定義分頁 封裝 sta 常規實現 data = [] for i in range(1, 302): tmp = {"id": i, "name": "alex-{}".format(i)}

python全棧系列之---定義

rip 當前 取數據 cep exce submit method next AI # coding:utf8 # __author: Administrator # date: 2018/3/7 0007 # /usr/bin/env python impo

nutz 結合QueryResult,Record 定義查詢,不構建pojo 整合

new ack long exceptio tlist call poj return .class public QueryResult getHistoryIncome(int d, int curPage) throws Exception { /**

Cookie、Session和定義

cookie值 image 分享 show base 新的 ive name pen cookie Cookie的由來 大家都知道HTTP協議是無狀態的。 無狀態的意思是每次請求都是獨立的,它的執行情況和結果與前面的請求和之後的請求都無直接關系,它不會受前面的請求響應情況直

Laravel 定義樣式

建立 img each IV com mina nta ner names 操作步驟如下: (1) 對應public/css/paging.css 文件建立分頁樣式. (2) 控制器查出分頁數據使用 paginate函數進行分頁處理.(禁止使用group by處理查詢)

Django-定義

isa 變量 range 代碼 imp lencod django mat 多少 封裝好的自定義分頁器 class Page(): def __init__(self, page_num, total_count, base_url, params, per_pa

cookie和session以及定義

cookie值 無法 解析 link try render 強制 raise 需求 cookie Cookie的由來 大家都知道HTTP協議是無狀態的。 無狀態的意思是每次請求都是獨立的,它的執行情況和結果與前面的請求和之後的請求都無直接關系,它不會受前面的請求響應情況直