From 709d320a5a5a689fbedb12974ae0e1c8a1d84288 Mon Sep 17 00:00:00 2001 From: Redkale Date: Mon, 5 Dec 2022 19:44:07 +0800 Subject: [PATCH] =?UTF-8?q?DataResultSetRow=E5=A2=9E=E5=8A=A0getColumnLabe?= =?UTF-8?q?ls=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/redkale/boot/Application.java | 4 ++-- .../java/org/redkale/source/DataJdbcSource.java | 17 ++++++++++++++++- .../java/org/redkale/source/EntityInfo.java | 8 +++++--- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/redkale/boot/Application.java b/src/main/java/org/redkale/boot/Application.java index 2612007d3..75c779b00 100644 --- a/src/main/java/org/redkale/boot/Application.java +++ b/src/main/java/org/redkale/boot/Application.java @@ -1777,7 +1777,7 @@ public final class Application { AnyValue old = findSourceConfig(name, "cachesource"); conf.forEach((k, v) -> { events.add(ResourceEvent.create(k, v, old == null ? null : old.getValue(k))); - ((DefaultAnyValue) old).setValue(k, v); + if (old != null) ((DefaultAnyValue) old).setValue(k, v); }); ((AbstractCacheSource) source).onChange(events.toArray(new ResourceEvent[events.size()])); }); @@ -1791,7 +1791,7 @@ public final class Application { AnyValue old = findSourceConfig(name, "datasource"); conf.forEach((k, v) -> { events.add(ResourceEvent.create(k, v, old == null ? null : old.getValue(k))); - ((DefaultAnyValue) old).setValue(k, v); + if (old != null) ((DefaultAnyValue) old).setValue(k, v); }); ((AbstractDataSource) source).onChange(events.toArray(new ResourceEvent[events.size()])); }); diff --git a/src/main/java/org/redkale/source/DataJdbcSource.java b/src/main/java/org/redkale/source/DataJdbcSource.java index 2408a20fa..c52b9fc17 100644 --- a/src/main/java/org/redkale/source/DataJdbcSource.java +++ b/src/main/java/org/redkale/source/DataJdbcSource.java @@ -50,7 +50,7 @@ public class DataJdbcSource extends DataSqlSource { @Override public void onChange(ResourceEvent[] events) { - + } @Override @@ -1040,6 +1040,21 @@ public class DataJdbcSource extends DataSqlSource { } } + @Override + public List getColumnLabels() { + try { + ResultSetMetaData meta = rr.getMetaData(); + int count = meta.getColumnCount(); + List labels = new ArrayList<>(count); + for (int i = 1; i <= count; i++) { + labels.add(meta.getColumnLabel(i)); + } + return labels; + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + @Override public boolean wasNull() { try { diff --git a/src/main/java/org/redkale/source/EntityInfo.java b/src/main/java/org/redkale/source/EntityInfo.java index 708b4e5a8..83196ddd3 100644 --- a/src/main/java/org/redkale/source/EntityInfo.java +++ b/src/main/java/org/redkale/source/EntityInfo.java @@ -1393,15 +1393,17 @@ public final class EntityInfo { //index从1开始 public Object getObject(int index); - public Object getObject(String column); + public Object getObject(String columnLabel); //index从1开始 - default Serializable getObject(Attribute attr, int index, String column) { - return DataResultSet.getRowColumnValue(this, attr, index, column); + default Serializable getObject(Attribute attr, int index, String columnLabel) { + return DataResultSet.getRowColumnValue(this, attr, index, columnLabel); } //判断当前行值是否为null public boolean wasNull(); + + public List getColumnLabels(); } public static class EntityColumn {