Я пытаюсь использовать плагин PageHelper, предоставленный на этом репо , следуя предоставленным инструкциям по установке здесь , но моя проблема в том, что я не могу добиться лучшего времени по сравнению с тем, чтоЯ получал без плагина.Я скачал jars для pagehelper и jsqparser, добавил их в путь сборки моего проекта, а также добавил pagehelper в список зависимостей в build.gradle моего проекта как:
dependencies {
compile fileTree(dir: 'lib', include: ['*.jar'])
compile 'com.github.pagehelper:pagehelper:3.2.1'
compile files("lib/jsqlparser-3.0.jar")
}
и добавил их в мой путь сборкитакже.Затем для второго шага я отредактировал config org.mybatis.spring.SqlSessionFactoryBean
следующим образом:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="wrapperDataSource" />
<property name="configLocation" value="/WEB-INF/MapConfig.xml"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!-- config params as the following -->
<value>
helperDialect=mysql
reasonable=true
supportMethodsArguments=true
params=count=countSql
autoRuntimeDialect=true
</value>
</property>
</bean>
</array>
</property>
</bean>
, где первые два свойства уже присутствовали в этом XML-файле.Теперь, после внесения этих изменений, я строю свой проект и запускаю его с помощью jetty, вызывая selectList следующим образом:
RowBounds rowBounds = new RowBounds(0, 100);
List<E> pendingRequests = getSqlSession().<E>selectList("fetchAllPendingRequests",inputData,rowBounds);
где E - тип данных моих результатов.
Проблема в том, чточто время, которое я получаю для этой функции, чтобы получить все результаты с помощью плагина PageHelper, почти такое же, как и у меня без использования плагина.Хотя, когда я вхожу в режим отладки, я вижу, что в обоих случаях запрос из базы данных происходит по-разному через разные методы.Несмотря на то, что без использования плагина последний вызов запроса выполняется с использованием объекта executor
в классе SimpleExecutor, а с использованием плагина вызов выполняется из класса PageInterceptor репозитория PageHelper.Таким образом, единственный вывод, который я делаю, заключается в том, что он не может выполнять физическую нумерацию страниц, несмотря на использование плагина, но я не мог понять причины этого.Любая помощь будет очень ценится:)