From eb370bf32e3c1ddd9d7a070465464ade3d0f720b Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 24 Sep 2022 11:59:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DDB=E5=B7=A5=E5=85=B7=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=9F=A5=E8=AF=A2=E7=9A=84=E6=97=B6=E5=80=99oracle?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BC=9A=E6=8A=8AROWNUM=5F=E4=B9=9F?= =?UTF-8?q?=E5=B8=A6=E5=87=BA=E6=9D=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../java/cn/hutool/db/dialect/impl/OracleDialect.java | 4 ++-- .../src/main/java/cn/hutool/db/handler/HandleHelper.java | 9 ++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1384206b2..aa1f7fd3f 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ * 【core 】 修复ReflectUtil 反射方法中桥接判断问题(issue#2625@Github) * 【poi 】 修复ExcelWriter导出List引起的个数混乱问题(issue#2627@Github) * 【poi 】 修复ExcelReader读取时间变成12小时形式问题(issue#I5Q1TW@Gitee) +* 【db 】 修复DB工具分页查询的时候oracle数据库会把ROWNUM_也带出来问题(issue#2618@Github) ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-db/src/main/java/cn/hutool/db/dialect/impl/OracleDialect.java b/hutool-db/src/main/java/cn/hutool/db/dialect/impl/OracleDialect.java index 037aaf8a0..a07d34c03 100644 --- a/hutool-db/src/main/java/cn/hutool/db/dialect/impl/OracleDialect.java +++ b/hutool-db/src/main/java/cn/hutool/db/dialect/impl/OracleDialect.java @@ -35,8 +35,8 @@ public class OracleDialect extends AnsiSqlDialect { return find .insertPreFragment("SELECT * FROM ( SELECT row_.*, rownum rownum_ from ( ") .append(" ) row_ where rownum <= ").append(startEnd[1])// - .append(") table_alias")// - .append(" where table_alias.rownum_ > ").append(startEnd[0]);// + .append(") table_alias_")// + .append(" where table_alias_.rownum_ > ").append(startEnd[0]);// } @Override diff --git a/hutool-db/src/main/java/cn/hutool/db/handler/HandleHelper.java b/hutool-db/src/main/java/cn/hutool/db/handler/HandleHelper.java index 585dd5aa8..e7ee33a14 100644 --- a/hutool-db/src/main/java/cn/hutool/db/handler/HandleHelper.java +++ b/hutool-db/src/main/java/cn/hutool/db/handler/HandleHelper.java @@ -149,9 +149,16 @@ public class HandleHelper { */ public static T handleRow(T row, int columnCount, ResultSetMetaData meta, ResultSet rs, boolean withMetaInfo) throws SQLException { int type; + String columnLabel; for (int i = 1; i <= columnCount; i++) { type = meta.getColumnType(i); - row.put(meta.getColumnLabel(i), getColumnValue(rs, i, type, null)); + columnLabel = meta.getColumnLabel(i); + if("rownum_".equalsIgnoreCase(columnLabel)){ + // issue#2618@Github + // 分页时会查出rownum字段,此处忽略掉读取 + continue; + } + row.put(columnLabel, getColumnValue(rs, i, type, null)); } if (withMetaInfo) { try {