v5.0.4
版本发布时间: 2017-07-31 21:24:59
pagehelper/Mybatis-PageHelper最新发布版本:v6.0.0(2023-11-05 11:52:39)
中文
- 增加对
Phoenix
数据库的简单配置支持,配置helperDialect=phoenix
即可,也可以自动识别Phoenix
数据库的 jdbc url。 - count 查询的缓存
msCountMap
key 改为String
类型,key 为 count 查询的MappedStatement
的 id。 - 增加
countSuffix
count 查询后缀配置参数,该参数是针对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
countSuffix
count 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