diff --git a/application-webadmin/src/main/java/supie/webadmin/app/controller/CustomizeRouteController.java b/application-webadmin/src/main/java/supie/webadmin/app/controller/CustomizeRouteController.java index 7a84489b7d84af6ba2062ae996fdb69dbd58d687..2ac1aa3f6c0102bfbcb3d710e1ac66155a2c65b7 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/controller/CustomizeRouteController.java +++ b/application-webadmin/src/main/java/supie/webadmin/app/controller/CustomizeRouteController.java @@ -27,7 +27,7 @@ import java.util.*; * @author rm -rf .bug * @date 2020-11-12 */ -@Api(tags = "自定义动态路由管理接口") +@Api(tags = "数据服务-自定义动态路由管理接口") @Slf4j @RestController @RequestMapping("/admin/app/customizeRoute") diff --git a/application-webadmin/src/main/java/supie/webadmin/app/controller/dynamicRoutingAPI/MyDynamicController.java b/application-webadmin/src/main/java/supie/webadmin/app/controller/dynamicRoutingAPI/MyDynamicController.java index 9f468a87dac295afc7d382df07a5368aba203d5c..7815975228919de7cbe8aeddb74950e48bb82352 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/controller/dynamicRoutingAPI/MyDynamicController.java +++ b/application-webadmin/src/main/java/supie/webadmin/app/controller/dynamicRoutingAPI/MyDynamicController.java @@ -2,7 +2,6 @@ package supie.webadmin.app.controller.dynamicRoutingAPI; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.Data; @@ -17,7 +16,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import supie.common.core.constant.ErrorCodeEnum; import supie.common.core.object.MyPageParam; import supie.common.core.object.ResponseResult; -import supie.webadmin.app.dao.CustomizeRouteMapper; import supie.webadmin.app.dao.ProjectEngineMapper; import supie.webadmin.app.model.CustomizeRoute; import supie.webadmin.app.model.ProjectEngine; @@ -26,7 +24,6 @@ import supie.webadmin.app.service.databasemanagement.StrategyFactory; import javax.servlet.http.HttpServletRequest; import java.util.*; -import java.util.concurrent.TimeUnit; /** * 描述: @@ -52,8 +49,8 @@ public class MyDynamicController { @ResponseBody public ResponseResult executeSql(@RequestBody Map params, HttpServletRequest request) { String url = request.getRequestURI(); - RBucket customizeRouteData = redissonClient.getBucket("CustomizeRoute:" + url); - CustomizeRoute customizeRoute = customizeRouteData.get(); + RBucket customizeRouteData = redissonClient.getBucket("CustomizeRoute:" + url); + CustomizeRoute customizeRoute = JSONUtil.toBean(customizeRouteData.get(), CustomizeRoute.class); customizeRouteData.delete(); return performCustomizeRouteBusiness(params, customizeRoute); } @@ -90,7 +87,7 @@ public class MyDynamicController { if (paramsKey.contains("pageParam")) { MyPageParam pageParam = JSONUtil.toBean(JSONUtil.toJsonStr(params.get("pageParam")), MyPageParam.class); PageHelper.startPage(pageParam.getPageNum(), pageParam.getPageSize()); - resultData = strategy.executeSql(sqlScript); + resultData = strategy.executeSql(sqlScript, pageParam); strategy.closeAll(); if (Boolean.FALSE.equals(resultData.get("success"))) { return ResponseResult.error(ErrorCodeEnum.NO_ERROR, @@ -101,7 +98,7 @@ public class MyDynamicController { PageInfo> mapPageInfo = new PageInfo<>(queryDataList); resultMap.put("totalCount", mapPageInfo.getTotal()); } else { - resultData = strategy.executeSql(sqlScript); + resultData = strategy.executeSql(sqlScript, null); strategy.closeAll(); } resultMap.put("url", customizeRoute.getUrl()); diff --git a/application-webadmin/src/main/java/supie/webadmin/app/dao/CustomizeRouteMapper.java b/application-webadmin/src/main/java/supie/webadmin/app/dao/CustomizeRouteMapper.java index 2186718e7cc5c42d5b2a3032dcf7027a2209ebf4..fec566176a281e25498ec821d0032969ce2b2c95 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/dao/CustomizeRouteMapper.java +++ b/application-webadmin/src/main/java/supie/webadmin/app/dao/CustomizeRouteMapper.java @@ -54,4 +54,18 @@ public interface CustomizeRouteMapper extends BaseDaoMapper { */ List queryRegisterApi(); + /** + * 列出与指定外部App表存在多对多关系的 [自定义动态路由] 列表数据。 + * + * @param externalAppId 主表关联字段。 + * @param customizeRouteFilter 自定义路由过滤器。 + * @param orderBy 排序方式。 + * @return 应答结果对象,返回符合条件的数据列表。 + * @author 王立宏 + * @date 2023/11/21 03:55 + */ + List getCustomizeRouteListByExternalAppId( + @Param("externalAppId") Long externalAppId, + @Param("customizeRouteFilter") CustomizeRoute customizeRouteFilter, + @Param("orderBy") String orderBy); } diff --git a/application-webadmin/src/main/java/supie/webadmin/app/dao/mapper/CustomizeRouteMapper.xml b/application-webadmin/src/main/java/supie/webadmin/app/dao/mapper/CustomizeRouteMapper.xml index f8f25a89e1014153348f1133c1f42ac0b81cc0fe..758937af1bd7c044e32b6140f1a507837eaf177a 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/dao/mapper/CustomizeRouteMapper.xml +++ b/application-webadmin/src/main/java/supie/webadmin/app/dao/mapper/CustomizeRouteMapper.xml @@ -175,4 +175,15 @@ WHERE sdt_customize_route.state = 1 AND sdt_customize_route.is_delete = ${@supie.common.core.constant.GlobalDeletedFlag@NORMAL} + + diff --git a/application-webadmin/src/main/java/supie/webadmin/app/service/ExternalAppCustomizeRouteService.java b/application-webadmin/src/main/java/supie/webadmin/app/service/ExternalAppCustomizeRouteService.java index 3a916efe42d7dcc9c1ee00bc24d68ae6db483437..5c46ec4dba81f47ac5e95bdad10eed4803edbb00 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/service/ExternalAppCustomizeRouteService.java +++ b/application-webadmin/src/main/java/supie/webadmin/app/service/ExternalAppCustomizeRouteService.java @@ -65,4 +65,7 @@ public interface ExternalAppCustomizeRouteService extends IBaseService getExternalAppCustomizeRouteListWithRelation(ExternalAppCustomizeRoute filter, String orderBy); + + ExternalAppCustomizeRoute buildDefaultValue(ExternalAppCustomizeRoute externalAppCustomizeRoute); + } diff --git a/application-webadmin/src/main/java/supie/webadmin/app/service/databasemanagement/Strategy.java b/application-webadmin/src/main/java/supie/webadmin/app/service/databasemanagement/Strategy.java index 86abdf157a9e11982f776ccd205f5459afd01b0f..70185e274fe0d28c8b580133b4bb870070a43312 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/service/databasemanagement/Strategy.java +++ b/application-webadmin/src/main/java/supie/webadmin/app/service/databasemanagement/Strategy.java @@ -1,6 +1,6 @@ package supie.webadmin.app.service.databasemanagement; -import supie.webadmin.app.service.databasemanagement.model.DatabaseManagement; +import supie.common.core.object.MyPageParam; import java.util.List; import java.util.Map; @@ -39,11 +39,12 @@ public interface Strategy { List> queryTableFields(String databaseName, String tableName); /** - * 执行单条SQL语句 - * @param sqlScript + * 执行单条SQL语句。 + * @param sqlScript SQL语句。 + * @param pageParam 分页对象。如果为 null 则不进行分页处理。 * @return */ - Map executeSql(String sqlScript); + Map executeSql(String sqlScript, MyPageParam pageParam); /** * 执行位置数量的SQL diff --git a/application-webadmin/src/main/java/supie/webadmin/app/service/databasemanagement/strategyImpl/BaseDataSource.java b/application-webadmin/src/main/java/supie/webadmin/app/service/databasemanagement/strategyImpl/BaseDataSource.java index 9693778eb5b94b1c047d447d319cae6f1d54091f..94232c62ead33200ddb5b3cca154eaedba0a833c 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/service/databasemanagement/strategyImpl/BaseDataSource.java +++ b/application-webadmin/src/main/java/supie/webadmin/app/service/databasemanagement/strategyImpl/BaseDataSource.java @@ -3,7 +3,9 @@ package supie.webadmin.app.service.databasemanagement.strategyImpl; import cn.hutool.core.text.StrSplitter; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; +import supie.common.core.object.MyPageParam; import supie.webadmin.app.service.databasemanagement.DataBaseTypeEnum; +import supie.webadmin.app.util.JsqlparserUtil; import java.sql.*; import java.util.*; @@ -87,23 +89,38 @@ public class BaseDataSource { } /** - * 执行单条SQL语句 + * 执行单条SQL语句。 * - * @param sqlScript + * @param sqlScript SQL语句。 + * @param pageParam 分页对象。如果为 null 则不进行分页处理。 * @return */ - public Map executeSql(String sqlScript) { + public Map executeSql(String sqlScript, MyPageParam pageParam) { Map resultMapData = new HashMap<>(); try { Statement statement = connection.createStatement(); resultMapData.put("sql", sqlScript); try { + // 判断是否需要进行分页处理 + if (pageParam != null) { + long totalCount = 0L; + // 判断是否属于查询语句。若为查询语句,则进行分页处理 + if (JsqlparserUtil.isQuerySql(sqlScript)) { + String countSqlScript = JsqlparserUtil.buildCountSqlScript(sqlScript); + sqlScript = JsqlparserUtil.buildLimitSqlScript(sqlScript, pageParam); + ResultSet resultSet = statement.executeQuery(countSqlScript); + while (resultSet.next()) { + totalCount = resultSet.getLong(1); + } + resultSet.close(); + } + resultMapData.put("totalCount", totalCount); + } boolean result = statement.execute(sqlScript); if (result) { ResultSet resultSet = statement.getResultSet(); // 查询结果 ResultSetMetaData metaData = resultSet.getMetaData(); Map queryResultData = new LinkedHashMap<>(); - LinkedList fieldList = null; LinkedList> queryDataList = new LinkedList<>(); while (resultSet.next()) { @@ -111,7 +128,7 @@ public class BaseDataSource { int columnCount = metaData.getColumnCount(); // 遍历每个字段 Map queryDataMap = new LinkedHashMap<>(); - Boolean setFieldList = false; + boolean setFieldList = false; if (fieldList == null) { fieldList = new LinkedList<>(); setFieldList = true; diff --git a/application-webadmin/src/main/java/supie/webadmin/app/service/impl/CustomizeRouteServiceImpl.java b/application-webadmin/src/main/java/supie/webadmin/app/service/impl/CustomizeRouteServiceImpl.java index 0621d41ec4b3cbe7702dbde68a5faedc6b6a4820..3212a73fb6b300d986553ad39992f7dfe4de7b10 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/service/impl/CustomizeRouteServiceImpl.java +++ b/application-webadmin/src/main/java/supie/webadmin/app/service/impl/CustomizeRouteServiceImpl.java @@ -288,7 +288,7 @@ public class CustomizeRouteServiceImpl extends BaseService } /** - * TODO 列出与指定外部App表存在多对多关系的 [自定义动态路由] 列表数据。 + * 列出与指定外部App表存在多对多关系的 [自定义动态路由] 列表数据。 * * @param externalAppId 主表关联字段。 * @param customizeRouteFilter 自定义路由过滤器。 @@ -300,6 +300,6 @@ public class CustomizeRouteServiceImpl extends BaseService */ @Override public List getCustomizeRouteListByExternalAppId(Long externalAppId, CustomizeRoute customizeRouteFilter, String orderBy) { - throw new RuntimeException("该功能待完成[急需请与管理员联系]..."); + return customizeRouteMapper.getCustomizeRouteListByExternalAppId(externalAppId, customizeRouteFilter, orderBy); } } diff --git a/application-webadmin/src/main/java/supie/webadmin/app/service/impl/ExternalAppCustomizeRouteServiceImpl.java b/application-webadmin/src/main/java/supie/webadmin/app/service/impl/ExternalAppCustomizeRouteServiceImpl.java index 50716a3f815c8cb1cf4b149fb968b7739ebaea5b..08e4b9bf317d072d621790c6352cf358926bb603 100644 --- a/application-webadmin/src/main/java/supie/webadmin/app/service/impl/ExternalAppCustomizeRouteServiceImpl.java +++ b/application-webadmin/src/main/java/supie/webadmin/app/service/impl/ExternalAppCustomizeRouteServiceImpl.java @@ -131,7 +131,8 @@ public class ExternalAppCustomizeRouteServiceImpl extends BaseService imple @Autowired private ExternalAppCustomizeRouteMapper externalAppCustomizeRouteMapper; @Autowired + private ExternalAppCustomizeRouteService externalAppCustomizeRouteService; + @Autowired private IdGeneratorWrapper idGenerator; /** @@ -176,7 +178,7 @@ public class ExternalAppServiceImpl extends BaseService imple for (ExternalAppCustomizeRoute externalAppCustomizeRoute : externalAppCustomizeRouteList) { externalAppCustomizeRoute.setId(idGenerator.nextLongId()); externalAppCustomizeRoute.setExternalAppId(externalAppId); - externalAppCustomizeRouteMapper.insert(externalAppCustomizeRoute); + externalAppCustomizeRouteMapper.insert(externalAppCustomizeRouteService.buildDefaultValue(externalAppCustomizeRoute)); } } diff --git a/application-webadmin/src/main/java/supie/webadmin/app/util/JsqlparserUtil.java b/application-webadmin/src/main/java/supie/webadmin/app/util/JsqlparserUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..8015016e46d3f8cb138e1b214123a7a040ccfc17 --- /dev/null +++ b/application-webadmin/src/main/java/supie/webadmin/app/util/JsqlparserUtil.java @@ -0,0 +1,131 @@ +package supie.webadmin.app.util; + +import lombok.extern.slf4j.Slf4j; +import net.sf.jsqlparser.JSQLParserException; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.expression.Function; +import net.sf.jsqlparser.expression.LongValue; +import net.sf.jsqlparser.expression.operators.relational.ExpressionList; +import net.sf.jsqlparser.parser.CCJSqlParserUtil; +import net.sf.jsqlparser.statement.Statement; +import net.sf.jsqlparser.statement.select.*; +import supie.common.core.object.MyPageParam; + +import java.util.ArrayList; +import java.util.List; + +/** + * 描述: + * + * @author 王立宏 + * @date 2023/11/21 14:35 + * @path SDT-supie.webadmin.app.util-JsqlparserUtil + */ +@Slf4j +public class JsqlparserUtil { + + /** + * 判断是否为查询语句 + * + * @param sqlScript SQL 脚本 + * @return 查询语句返回 true + * @author 王立宏 + * @date 2023/11/21 02:49 + */ + public static Boolean isQuerySql(String sqlScript) { + try { + Statement statement = CCJSqlParserUtil.parse(sqlScript); + return statement instanceof Select; + } catch (JSQLParserException e) { + // 处理分析异常 + return false; + } + } + + /** + * 构建分页查询语句 + * + * @param originalSqlQueryScript 原始 SQL 查询脚本 + * @param pageParam 页面参数 + * @return 具备分页功能的SQL语句 + * @author 王立宏 + * @date 2023/11/21 02:42 + */ + public static String buildLimitSqlScript( + String originalSqlQueryScript, MyPageParam pageParam) { + try { + // 解析 SQL 查询语句 + Statement jsqlparserStatement = CCJSqlParserUtil.parse(originalSqlQueryScript); + // 判断是否为 SELECT 语句 + if (jsqlparserStatement instanceof Select) { + // 如果是 SELECT 语句,进行进一步处理 + Select select = (Select) jsqlparserStatement; + SelectBody selectBody = select.getSelectBody(); + + // 判断 SELECT 语句的类型 + if (selectBody instanceof PlainSelect) { + // 如果是 PlainSelect,表示是普通的 SELECT 查询 + PlainSelect plainSelect = (PlainSelect) selectBody; + + // 判断是否已经存在分页功能 + if (plainSelect.getLimit() == null) { + // 不存在分页功能,添加分页逻辑 + Limit limit = new Limit(); + limit.setRowCount(new LongValue(pageParam.getPageSize())); + limit.setOffset(new LongValue((long) (pageParam.getPageNum() - 1) * pageParam.getPageSize())); + plainSelect.setLimit(limit); // 假设每页显示 10 条数据 +// return plainSelect.toString(); + } else { + log.warn("分页已存在于 SQL 查询中"); + } + } else { + // 不支持的 SELECT 语句类型 + throw new RuntimeException("不支持的 SELECT 语句类型"); + } + return select.toString() + ";"; + } else { + // 如果不是 SELECT 语句,则给出相应提示 + throw new RuntimeException("不是 SELECT 语句"); + } + } catch (JSQLParserException e) { + throw new RuntimeException(e); + } + } + + /** + * 构建总数查询语句 + * + * @param originalSqlQueryScript 原始 SQL 查询脚本 + * @return 分页查询的总数查询语句 + * @author 王立宏 + * @date 2023/11/21 02:43 + */ + public static String buildCountSqlScript(String originalSqlQueryScript) { + // 使用正则表达式构建总数查询SQL语句 +// return originalSqlQueryScript.replaceAll("(?i)SELECT[\\s\\S]*?FROM", "SELECT COUNT(0) FROM"); + // 使用JSQLParser构建总数查询SQL语句 + try { + Select select = (Select) CCJSqlParserUtil.parse(originalSqlQueryScript); + SelectBody selectBody = select.getSelectBody(); + if (selectBody instanceof PlainSelect) { + PlainSelect plainSelect = (PlainSelect) selectBody; + Function function = new Function(); + function.setName("COUNT"); + ExpressionList expressionList = new ExpressionList(); + List list = new ArrayList<>(); + list.add(new LongValue(0)); + expressionList.setExpressions(list); + function.setParameters(expressionList); + List functionList = new ArrayList<>(); + functionList.add(new SelectExpressionItem(function)); + plainSelect.setSelectItems(functionList); + return select.toString() + ";"; + } else { + throw new RuntimeException("Unsupported SELECT statement type."); + } + } catch (JSQLParserException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/application-webadmin/src/main/java/supie/webadmin/interceptor/ApiAuthenticationInterceptor.java b/application-webadmin/src/main/java/supie/webadmin/interceptor/ApiAuthenticationInterceptor.java index 2e62941262c82ffda34d654658562702397005d7..1ab66d6f364409cccaed02a93933e66bc1b6e353 100644 --- a/application-webadmin/src/main/java/supie/webadmin/interceptor/ApiAuthenticationInterceptor.java +++ b/application-webadmin/src/main/java/supie/webadmin/interceptor/ApiAuthenticationInterceptor.java @@ -5,6 +5,7 @@ import cn.hutool.core.text.StrFormatter; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -71,20 +72,21 @@ public class ApiAuthenticationInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + // 获取当前的请求所携带的AppKey信息 String url = request.getRequestURI(); - log.error("请求了自定义地址[" + url + "]"); -// QueryWrapper customizeRouteQueryWrapper = new QueryWrapper<>(); -// customizeRouteQueryWrapper.eq("url", url); -// CustomizeRoute customizeRoute = customizeRouteMapper.selectOne(customizeRouteQueryWrapper); -// if (customizeRoute == null) return false; + // 查询当前请求的路由的相关信息 + QueryWrapper customizeRouteQueryWrapper = new QueryWrapper<>(); + customizeRouteQueryWrapper.eq("url", url); + CustomizeRoute customizeRoute = customizeRouteMapper.selectOne(customizeRouteQueryWrapper); + if (customizeRoute == null) return false; // // 判断相关权限(先查询redis,redis中没有再查询数据库中的权限,并存入redis。TODO 相应的权限有变动修改则删除redis中缓存的权限信息。) // String customizeRouteRightKey = RedisKeyUtil.makeCustomizeRouteRightKey(customizeRoute.getId()); // RBucket> customizeRouteRight = redissonClient.getBucket(customizeRouteRightKey); -// -// -// // 权限判断通过,自定义路由信息存储至redis,以供业务代码获取 -// RBucket customizeRouteData = redissonClient.getBucket("CustomizeRoute:" + url); -// customizeRouteData.set(customizeRoute, 30, TimeUnit.SECONDS); + + // 权限判断通过,自定义路由信息存储至redis,以供业务代码获取 + RBucket customizeRouteData = redissonClient.getBucket("CustomizeRoute:" + url); + customizeRouteData.set(JSONUtil.toJsonStr(customizeRoute)); + customizeRouteData.expire(30, TimeUnit.SECONDS); return true; // String token = this.getTokenFromRequest(request); diff --git a/application-webadmin/src/main/java/supie/webadmin/upms/controller/LoginController.java b/application-webadmin/src/main/java/supie/webadmin/upms/controller/LoginController.java index 9e3431a94941495d29b95cbe4f9327d9e3619d89..6244cf1cc642bdf856ec0cded0bf648e62b5c09c 100644 --- a/application-webadmin/src/main/java/supie/webadmin/upms/controller/LoginController.java +++ b/application-webadmin/src/main/java/supie/webadmin/upms/controller/LoginController.java @@ -112,7 +112,7 @@ public class LoginController { // 这里包含密码密文,仅用于方便开发期间的接口测试,集成测试和发布阶段,需要将当前注解去掉。 // 如果您重新生成了公钥和私钥,请替换password的缺省值。 @ApiImplicitParam(name = "loginName", defaultValue = "admin"), - @ApiImplicitParam(name = "password", defaultValue = "IP3ccke3GhH45iGHB5qP9p7iZw6xUyj28Ju10rnBiPKOI35sc%2BjI7%2FdsjOkHWMfUwGYGfz8ik31HC2Ruk%2Fhkd9f6RPULTHj7VpFdNdde2P9M4mQQnFBAiPM7VT9iW3RyCtPlJexQ3nAiA09OqG%2F0sIf1kcyveSrulxembARDbDo%3D"), + @ApiImplicitParam(name = "password", defaultValue = "E5OT0IJ9pRvwGnsiuGuCLoNoA6EEBby1CIcThhXWZv4O4hCRU0NygDJRoROXhha1PCoix88kCsI55HiorQ5bBD6Z2uHIn4TCZtFJ14EbNVEWtVgN2F%2B8gbY7MZptA7deY47O5OfF5nnpJti95VXOOfGeLzRMRIQZkoFUuMrF794%3D"), @ApiImplicitParam(name = "captchaVerification", defaultValue = "为了方便测试,这里可以修改一下代码,hardcode一个每次都ok的验证码") }) @NoAuthInterface diff --git a/common/common-core/src/main/java/supie/common/core/object/MyPageParam.java b/common/common-core/src/main/java/supie/common/core/object/MyPageParam.java index 00b6356f2f16456b10a1a0d39e57fa0745ea2a17..8bd093c544419c75b5f265c9ea348e41273936a8 100644 --- a/common/common-core/src/main/java/supie/common/core/object/MyPageParam.java +++ b/common/common-core/src/main/java/supie/common/core/object/MyPageParam.java @@ -18,12 +18,12 @@ public class MyPageParam { /** * 分页号码,从1开始计数。 */ - private Integer pageNum; + private Integer pageNum = DEFAULT_PAGE_NUM; /** * 每页大小。 */ - private Integer pageSize; + private Integer pageSize = DEFAULT_PAGE_SIZE; /** * 设置当前分页页号。 diff --git a/pom.xml b/pom.xml index feaf4ed0edb33578f9a753a1b307a3147b692677..79d89b0b9a83de3063eac4d0f5dffde17f5c9be4 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,8 @@ 1.5.33 0.37.0 + + 4.4 @@ -188,6 +190,12 @@ sshj ${sshj.version} + + + com.github.jsqlparser + jsqlparser + ${jsqlparser.version} +