From 1d1976cbe2e8c2ceb9c91cdbdb759644d8384cc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E7=B1=B3=E9=98=B3=E5=85=89?= <776070848@qq.com> Date: Tue, 25 Oct 2022 17:39:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feature:=20DB=E6=A8=A1=E5=9D=97=E6=96=B0?= =?UTF-8?q?=E5=A2=9Ecount=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../magicapi/modules/db/SQLModule.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java index b7c00fbb..31705730 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java @@ -611,6 +611,28 @@ public class SQLModule implements DynamicAttribute, Dynami return page(count, boundSql, page, dialect); } + /** + * 查询总条目数 + */ + @Comment("查询总条目数") + public Integer count(RuntimeContext runtimeContext, + @Comment(name = "sqlOrXml", value = "`SQL`语句或`xml`") String sqlOrXml) { + return count(runtimeContext, sqlOrXml, null); + } + + /** + * 查询总条目数 + */ + @Comment("查询总条目数,并传入变量信息") + public Integer count(RuntimeContext runtimeContext, + @Comment(name = "sqlOrXml", value = "`SQL`语句或`xml`") String sqlOrXml, + @Comment(name = "params", value = "变量信息") Map params) { + BoundSql boundSql = new BoundSql(runtimeContext, sqlOrXml, params, this); + Dialect dialect = dataSourceNode.getDialect(dialectAdapter); + BoundSql countBoundSql = boundSql.copy(dialect.getCountSql(boundSql.getSql())); + return selectInt(countBoundSql); + } + /** * 查询int值 */ -- Gitee From f9edb6821f6e54636a718b4f66971432f5ccdc4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E7=B1=B3=E9=98=B3=E5=85=89?= <776070848@qq.com> Date: Wed, 26 Oct 2022 11:41:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feature:=20=E6=96=B0=E5=A2=9E=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E6=80=BB=E6=9D=A1=E6=95=B0=E5=88=86=E9=A1=B5=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ssssssss/magicapi/modules/db/SQLModule.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java index 31705730..f6cb2268 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java @@ -589,6 +589,20 @@ public class SQLModule implements DynamicAttribute, Dynami return page(count, boundSql, page, null); } + /** + * 分页查询(手动传入count) + */ + @Comment("执行分页查询,并传入变量信息,分页`SQL`count") + public Object page(RuntimeContext runtimeContext, + @Comment(name = "count", value = "总条数") int count, + @Comment(name = "sqlOrXml", value = "查询语句") String sqlOrXml, + @Comment(name = "limit", value = "限制条数") long limit, + @Comment(name = "offset", value = "跳过条数") long offset, + @Comment(name = "params", value = "变量信息") Map params) { + BoundSql boundSql = new BoundSql(runtimeContext, sqlOrXml, params, this); + return page(count, boundSql, new Page(limit, offset), null); + } + private Object page(int count, BoundSql boundSql, Page page, Dialect dialect) { List> list = null; if (count > 0) { -- Gitee