From 68c9153eeb3ebe96a1e94dcb8b64c4622dfcb09b Mon Sep 17 00:00:00 2001 From: VampireAchao Date: Sat, 30 Apr 2022 14:24:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=A1=A8=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E4=BA=8E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=8A=B6=E6=80=81=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/hutool/db/meta/MetaUtil.java | 1 + .../main/java/cn/hutool/db/meta/Table.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java b/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java index bb151db76..69846b191 100755 --- a/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java +++ b/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java @@ -229,6 +229,7 @@ public class MetaUtil { if (null != rs) { if (rs.next()) { table.setComment(rs.getString("REMARKS")); + table.setExists(true); } } } diff --git a/hutool-db/src/main/java/cn/hutool/db/meta/Table.java b/hutool-db/src/main/java/cn/hutool/db/meta/Table.java index 7046b1284..80ce1ba20 100644 --- a/hutool-db/src/main/java/cn/hutool/db/meta/Table.java +++ b/hutool-db/src/main/java/cn/hutool/db/meta/Table.java @@ -45,6 +45,11 @@ public class Table implements Serializable, Cloneable { */ private final Map columns = new LinkedHashMap<>(); + /** + * 表是否存在 + */ + private Boolean exists; + public static Table create(String tableName) { return new Table(tableName); } @@ -58,6 +63,7 @@ public class Table implements Serializable, Cloneable { */ public Table(String tableName) { this.setTableName(tableName); + this.setExists(false); } // ----------------------------------------------------- Constructor end @@ -173,6 +179,27 @@ public class Table implements Serializable, Cloneable { public void setPkNames(Set pkNames) { this.pkNames = pkNames; } + + /** + * 获取表是否存在 + * + * @return 表是否存在 + */ + public Boolean isExists() { + return exists; + } + + /** + * 设置表是否存在 + * + * @param exists 表是否存在 + * @return this + */ + public Table setExists(Boolean exists) { + this.exists = exists; + return this; + } + // ----------------------------------------------------- Getters and Setters end /** From b86147c4ae1c66824225889181339b8881b2dec7 Mon Sep 17 00:00:00 2001 From: VampireAchao Date: Sat, 7 May 2022 13:01:30 +0800 Subject: [PATCH 2/3] =?UTF-8?q?MapUtil.map=E5=AF=B9null=E5=8F=8B=E5=A5=BD?= =?UTF-8?q?=EF=BC=8C=E4=B8=94=E4=BF=AE=E5=A4=8D=E4=BA=86=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=B8=AD=E5=88=86=E7=BB=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java | 3 ++- .../src/test/java/cn/hutool/core/map/MapUtilTest.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java index 23fb8e604..6dff51f57 100755 --- a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java @@ -6,6 +6,7 @@ import cn.hutool.core.lang.Editor; import cn.hutool.core.lang.Filter; import cn.hutool.core.lang.Pair; import cn.hutool.core.lang.TypeReference; +import cn.hutool.core.stream.CollectorUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; @@ -708,7 +709,7 @@ public class MapUtil { if (null == map || null == biFunction) { return MapUtil.newHashMap(); } - return map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, m -> biFunction.apply(m.getKey(), m.getValue()))); + return map.entrySet().stream().collect(CollectorUtil.toMap(Map.Entry::getKey, m -> biFunction.apply(m.getKey(), m.getValue()),(l,r)->l)); } /** diff --git a/hutool-core/src/test/java/cn/hutool/core/map/MapUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/map/MapUtilTest.java index 876e31446..ef7540d0e 100644 --- a/hutool-core/src/test/java/cn/hutool/core/map/MapUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/map/MapUtilTest.java @@ -82,7 +82,7 @@ public class MapUtilTest { // 如你所见,它是一个map,key由用户id,value由用户组成 Map idUserMap = Stream.iterate(0L, i -> ++i).limit(4).map(i -> User.builder().id(i).name(customers.poll()).build()).collect(Collectors.toMap(User::getId, Function.identity())); // 如你所见,它是一个map,key由分组id,value由用户ids组成,典型的多对多关系 - Map> groupIdUserIdsMap = groups.stream().flatMap(group -> idUserMap.keySet().stream().map(userId -> UserGroup.builder().groupId(group.getId()).userId(userId).build())).collect(Collectors.groupingBy(UserGroup::getUserId, Collectors.mapping(UserGroup::getGroupId, Collectors.toList()))); + Map> groupIdUserIdsMap = groups.stream().flatMap(group -> idUserMap.keySet().stream().map(userId -> UserGroup.builder().groupId(group.getId()).userId(userId).build())).collect(Collectors.groupingBy(UserGroup::getGroupId, Collectors.mapping(UserGroup::getUserId, Collectors.toList()))); // 神奇的魔法发生了, 分组id和用户ids组成的map,竟然变成了订单编号和用户实体集合组成的map Map> groupIdUserMap = MapUtil.map(groupIdUserIdsMap, (groupId, userIds) -> userIds.stream().map(idUserMap::get).collect(Collectors.toList())); @@ -98,7 +98,8 @@ public class MapUtilTest { Assert.assertEquals("竹鼠发烧找华农", users.get(2).getName()); Assert.assertEquals("朴实无华朱一旦", users.get(3).getName()); }); - // 能写代码真开心 + // 对null友好 + MapUtil.map(MapUtil.of(0, 0), (k, v) -> null).forEach((k, v) -> Assert.assertNull(v)); } @Test From ec6eb82a62f97cffda120f2c29b718b62a51496f Mon Sep 17 00:00:00 2001 From: VampireAchao Date: Sat, 7 May 2022 13:01:33 +0800 Subject: [PATCH 3/3] =?UTF-8?q?Revert=20"=E6=96=B0=E5=A2=9E=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=A1=A8=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E4=BA=8E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E7=8A=B6=E6=80=81=E6=A0=87=E8=AF=86?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 68c9153eeb3ebe96a1e94dcb8b64c4622dfcb09b. --- .../main/java/cn/hutool/db/meta/MetaUtil.java | 1 - .../main/java/cn/hutool/db/meta/Table.java | 27 ------------------- 2 files changed, 28 deletions(-) diff --git a/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java b/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java index deb34e878..f1ecafa83 100755 --- a/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java +++ b/hutool-db/src/main/java/cn/hutool/db/meta/MetaUtil.java @@ -229,7 +229,6 @@ public class MetaUtil { if (null != rs) { if (rs.next()) { table.setComment(rs.getString("REMARKS")); - table.setExists(true); } } } diff --git a/hutool-db/src/main/java/cn/hutool/db/meta/Table.java b/hutool-db/src/main/java/cn/hutool/db/meta/Table.java index 80ce1ba20..7046b1284 100644 --- a/hutool-db/src/main/java/cn/hutool/db/meta/Table.java +++ b/hutool-db/src/main/java/cn/hutool/db/meta/Table.java @@ -45,11 +45,6 @@ public class Table implements Serializable, Cloneable { */ private final Map columns = new LinkedHashMap<>(); - /** - * 表是否存在 - */ - private Boolean exists; - public static Table create(String tableName) { return new Table(tableName); } @@ -63,7 +58,6 @@ public class Table implements Serializable, Cloneable { */ public Table(String tableName) { this.setTableName(tableName); - this.setExists(false); } // ----------------------------------------------------- Constructor end @@ -179,27 +173,6 @@ public class Table implements Serializable, Cloneable { public void setPkNames(Set pkNames) { this.pkNames = pkNames; } - - /** - * 获取表是否存在 - * - * @return 表是否存在 - */ - public Boolean isExists() { - return exists; - } - - /** - * 设置表是否存在 - * - * @param exists 表是否存在 - * @return this - */ - public Table setExists(Boolean exists) { - this.exists = exists; - return this; - } - // ----------------------------------------------------- Getters and Setters end /**