From f2769dc1821df8220ee113f1d47e8d27635fff52 Mon Sep 17 00:00:00 2001 From: redkale Date: Tue, 25 Jul 2023 21:51:42 +0800 Subject: [PATCH] =?UTF-8?q?DataSqlSource=E5=A2=9E=E5=8A=A0executeQueryMap?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/redkale/source/DataSqlSource.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/redkale/source/DataSqlSource.java b/src/main/java/org/redkale/source/DataSqlSource.java index 34c49165c..842f087c6 100644 --- a/src/main/java/org/redkale/source/DataSqlSource.java +++ b/src/main/java/org/redkale/source/DataSqlSource.java @@ -5,6 +5,7 @@ package org.redkale.source; import java.util.*; import java.util.function.*; +import static org.redkale.source.DataResultSet.formatColumnValue; /** * @@ -35,7 +36,7 @@ public interface DataSqlSource extends DataSource { return null; } if (type.isPrimitive() || type == byte[].class || type.getName().startsWith("java.")) { - return (V) DataResultSet.formatColumnValue(type, rset.getObject(1)); + return (V) formatColumnValue(type, rset.getObject(1)); } return EntityBuilder.load(type).getObjectValue(rset); }); @@ -46,11 +47,24 @@ public interface DataSqlSource extends DataSource { if (type.isPrimitive() || type == byte[].class || type.getName().startsWith("java.")) { List list = new ArrayList<>(); while (rset.next()) { - list.add(rset.wasNull() ? null : (V) DataResultSet.formatColumnValue(type, rset.getObject(1))); + list.add(rset.wasNull() ? null : (V) formatColumnValue(type, rset.getObject(1))); } return list; } return EntityBuilder.load(type).getObjectList(rset); }); } + + default Map executeQueryMap(Class keyType, Class valType, String sql) { + return executeQuery(sql, rset -> { + Map map = new LinkedHashMap(); + while (rset.next()) { + if (!rset.wasNull()) { + map.put((K) formatColumnValue(keyType, rset.getObject(1)), (V) formatColumnValue(valType, rset.getObject(2))); + } + } + return map; + }); + } + }