Нумерация страниц в MyBatis с использованием PageHelper не дает улучшения во времени - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь использовать плагин 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.Таким образом, единственный вывод, который я делаю, заключается в том, что он не может выполнять физическую нумерацию страниц, несмотря на использование плагина, но я не мог понять причины этого.Любая помощь будет очень ценится:)

...