中文
- 增加对
Phoenix数据库的简单配置支持,配置helperDialect=phoenix即可,也可以自动识别Phoenix数据库的 jdbc url。 - count 查询的缓存
msCountMapkey 改为String类型,key 为 count 查询的MappedStatement的 id。 - 增加
countSuffixcount 查询后缀配置参数,该参数是针对PageInterceptor配置的,默认值为_COUNT。 - 增加手写 count 查询支持,详情看下面介绍。
增加手写 count 查询支持
增加 countSuffix count 查询后缀配置参数,该参数是针对 PageInterceptor 配置的,默认值为 _COUNT。
分页插件会优先通过当前查询的 msId + countSuffix 查找手写的分页查询。
如果存在就使用手写的 count 查询,如果不存在,仍然使用之前的方式自动创建 count 查询。
例如,如果存在下面两个查询:
<select id="selectLeftjoin" resultType="com.github.pagehelper.model.Country">
select a.id,b.countryname,a.countrycode from country a
left join country b on a.id = b.id
order by a.id
</select>
<select id="selectLeftjoin_COUNT" resultType="Long">
select count(distinct a.id) from country a
left join country b on a.id = b.id
</select>上面的 countSuffix 使用的默认值 _COUNT,分页插件会自动获取到 selectLeftjoin_COUNT 查询,这个查询需要自己保证结果数正确。
返回值的类型必须是resultType="Long",入参使用的和 selectLeftjoin 查询相同的参数,所以在 SQL 中要按照 selectLeftjoin 的入参来使用。
因为 selectLeftjoin_COUNT 方法是自动调用的,所以不需要在接口提供相应的方法,如果需要单独调用,也可以提供。
上面方法执行输出的部分日志如下:
DEBUG [main] - ==> Preparing: select count(distinct a.id) from country a left join country b on a.id = b.id
DEBUG [main] - ==> Parameters:
TRACE [main] - <== Columns: C1
TRACE [main] - <== Row: 183
DEBUG [main] - <== Total: 1
DEBUG [main] - Cache Hit Ratio [com.github.pagehelper.mapper.CountryMapper]: 0.0
DEBUG [main] - ==> Preparing: select a.id,b.countryname,a.countrycode from country a left join country b on a.id = b.id order by a.id LIMIT 10
DEBUG [main] - ==> Parameters:
TRACE [main] - <== Columns: ID, COUNTRYNAME, COUNTRYCODE
TRACE [main] - <== Row: 1, Angola, AO
TRACE [main] - <== Row: 2, Afghanistan, AF
TRACE [main] - <== Row: 3, Albania, AL
English
- Add a simple configuration support for the Phoenix database, You can configure
helperDialect=phoenix. Can also automatically identify the Phoenix database jdbc url. - Simplified cache of
msCountMap - Add
countSuffixcount query suffix configuration parameters, this parameter is configured forPageInterceptor, the default value is_COUNT. - Add custom count query support, see below for details.
Add custom count query support
Add countSuffix count query suffix configuration parameters, this parameter is configured for PageInterceptor, the default value is _COUNT.
The paging plugin will preferentially find the handwritten paging query by the current query msId + countSuffix.
If there is no custom query, the query is still automatically created using the previous way.
For example, if there are two queries:
<select id="selectLeftjoin" resultType="com.github.pagehelper.model.Country">
select a.id,b.countryname,a.countrycode from country a
left join country b on a.id = b.id
order by a.id
</select>
<select id="selectLeftjoin_COUNT" resultType="Long">
select count(distinct a.id) from country a
left join country b on a.id = b.id
</select>The above countSuffix uses the default value of _COUNT, and the paging plugin will automatically get the query to selectLeftjoin_COUNT. This query needs to ensure that the result is correct.
The value of the return value must be resultType =" Long ", and the same parameter used by selectLeftjoin 'is used, so it is used in SQL to follow the selection of selectLeftjoin'.
Because the selectLeftjoin_COUNT method is invoked automatically, there is no need to provide the appropriate method on the interface, or if it is required to be invoked separately.
The above method to perform the portion of the output log is as follows:
DEBUG [main] - ==> Preparing: select count(distinct a.id) from country a left join country b on a.id = b.id
DEBUG [main] - ==> Parameters:
TRACE [main] - <== Columns: C1
TRACE [main] - <== Row: 183
DEBUG [main] - <== Total: 1
DEBUG [main] - Cache Hit Ratio [com.github.pagehelper.mapper.CountryMapper]: 0.0
DEBUG [main] - ==> Preparing: select a.id,b.countryname,a.countrycode from country a left join country b on a.id = b.id order by a.id LIMIT 10
DEBUG [main] - ==> Parameters:
TRACE [main] - <== Columns: ID, COUNTRYNAME, COUNTRYCODE
TRACE [main] - <== Row: 1, Angola, AO
TRACE [main] - <== Row: 2, Afghanistan, AF
TRACE [main] - <== Row: 3, Albania, AL