Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Pig
提交
9c7f8bf1
P
Pig
项目概览
int
/
Pig
上一次同步 大约 1 年
通知
8
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Pig
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9c7f8bf1
编写于
10月 11, 2021
作者:
pig_冷冷
提交者:
Gitee
10月 11, 2021
浏览文件
操作
浏览文件
下载
差异文件
!166 复写Mybatis-Plus的分页插件,处理size=-1时查询全表问题
Merge pull request !166 from 茗记/master
上级
4408a794
ba2db2e2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
63 addition
and
1 deletion
+63
-1
pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/MybatisAutoConfiguration.java
...ig4cloud/pig/common/mybatis/MybatisAutoConfiguration.java
+2
-1
pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/plugins/LimitInterceptor.java
...ig4cloud/pig/common/mybatis/plugins/LimitInterceptor.java
+61
-0
未找到文件。
pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/MybatisAutoConfiguration.java
浏览文件 @
9c7f8bf1
...
...
@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import
com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor
;
import
com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor
;
import
com.pig4cloud.pig.common.mybatis.config.MybatisPlusMetaObjectHandler
;
import
com.pig4cloud.pig.common.mybatis.plugins.LimitInterceptor
;
import
com.pig4cloud.pig.common.mybatis.resolver.SqlFilterArgumentResolver
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
...
...
@@ -53,7 +54,7 @@ public class MybatisAutoConfiguration implements WebMvcConfigurer {
@Bean
public
MybatisPlusInterceptor
mybatisPlusInterceptor
()
{
MybatisPlusInterceptor
interceptor
=
new
MybatisPlusInterceptor
();
interceptor
.
addInnerInterceptor
(
new
PaginationInner
Interceptor
(
DbType
.
MYSQL
));
interceptor
.
addInnerInterceptor
(
new
Limit
Interceptor
(
DbType
.
MYSQL
));
return
interceptor
;
}
...
...
pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/plugins/LimitInterceptor.java
0 → 100644
浏览文件 @
9c7f8bf1
package
com.pig4cloud.pig.common.mybatis.plugins
;
import
com.baomidou.mybatisplus.annotation.DbType
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.ParameterUtils
;
import
com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.dialects.IDialect
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.apache.ibatis.executor.Executor
;
import
org.apache.ibatis.mapping.BoundSql
;
import
org.apache.ibatis.mapping.MappedStatement
;
import
org.apache.ibatis.session.ResultHandler
;
import
org.apache.ibatis.session.RowBounds
;
import
java.sql.SQLException
;
/**
* 分页拦截器
* <p>
* 重构分页插件, 当 size 小于 0 时, 直接设置为 0, 防止错误查询全表
*
* @author seven
* @since 2021年10月11日
*/
@Data
@NoArgsConstructor
public
class
LimitInterceptor
extends
PaginationInnerInterceptor
{
/**
* 数据库类型
* <p>
* 查看 {@link #findIDialect(Executor)} 逻辑
*/
private
DbType
dbType
;
/**
* 方言实现类
* <p>
* 查看 {@link #findIDialect(Executor)} 逻辑
*/
private
IDialect
dialect
;
public
LimitInterceptor
(
DbType
dbType
)
{
this
.
dbType
=
dbType
;
}
public
LimitInterceptor
(
IDialect
dialect
)
{
this
.
dialect
=
dialect
;
}
@Override
public
void
beforeQuery
(
Executor
executor
,
MappedStatement
ms
,
Object
parameter
,
RowBounds
rowBounds
,
ResultHandler
resultHandler
,
BoundSql
boundSql
)
throws
SQLException
{
IPage
<?>
page
=
ParameterUtils
.
findPage
(
parameter
).
orElse
(
null
);
// size 小于 0 直接设置为 0 , 即不查询任何数据
if
(
null
!=
page
&&
page
.
getSize
()
<
0
)
{
page
.
setSize
(
0
);
}
super
.
beforeQuery
(
executor
,
ms
,
page
,
rowBounds
,
resultHandler
,
boundSql
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录