From 48e0e99bb62ec0f5abed49699c897f171def1d53 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 25 Jan 2022 11:12:41 +0800 Subject: [PATCH] add ConditionGroup --- CHANGELOG.md | 1 + .../src/main/java/cn/hutool/db/sql/ConditionGroup.java | 9 ++++++--- .../test/java/cn/hutool/db/sql/ConditionGroupTest.java | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66545ca77..e125d95c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ * 【extra 】 增加jetbrick模板支持 * 【extra 】 EmojiUtil增加方法(pr#519@Gitee) * 【core 】 DateUtil 添加两个日期是否同一周方法(pr#516@Gitee) +* 【db 】 新增条件组,用于处理复杂的where条件(pr#514@Gitee) ### 🐞Bug修复 * 【core 】 修复ChineseDate农历获取正月出现数组越界BUG(issue#2112@Github) diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java b/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java index 33467287a..7dedf5603 100644 --- a/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java +++ b/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java @@ -10,8 +10,9 @@ import java.util.List; * 用于构建复杂where条件 * * @author tjh + * @since 5.7.21 */ -public class ConditionGroup extends Condition{ +public class ConditionGroup extends Condition { /** * 条件列表 */ @@ -23,7 +24,7 @@ public class ConditionGroup extends Condition{ * @param conditions 条件列表 */ public void addConditions(Condition... conditions) { - if(null == this.conditions) { + if (null == this.conditions) { this.conditions = conditions; } else { this.conditions = ArrayUtil.addAll(this.conditions, conditions); @@ -38,7 +39,9 @@ public class ConditionGroup extends Condition{ */ @Override public String toString(List paramValues) { - if (ArrayUtil.isEmpty(conditions)) return StrUtil.EMPTY; + if (ArrayUtil.isEmpty(conditions)) { + return StrUtil.EMPTY; + } final StringBuilder conditionStrBuilder = StrUtil.builder(); conditionStrBuilder.append("("); diff --git a/hutool-db/src/test/java/cn/hutool/db/sql/ConditionGroupTest.java b/hutool-db/src/test/java/cn/hutool/db/sql/ConditionGroupTest.java index 3c48c2218..843e0420b 100644 --- a/hutool-db/src/test/java/cn/hutool/db/sql/ConditionGroupTest.java +++ b/hutool-db/src/test/java/cn/hutool/db/sql/ConditionGroupTest.java @@ -1,5 +1,7 @@ package cn.hutool.db.sql; +import cn.hutool.core.collection.ListUtil; +import org.junit.Assert; import org.junit.Test; public class ConditionGroupTest { @@ -20,7 +22,7 @@ public class ConditionGroupTest { final ConditionBuilder conditionBuilder = ConditionBuilder.of(cg2, condition4); - System.out.println(conditionBuilder.build()); - System.out.println(conditionBuilder.getParamValues()); + Assert.assertEquals("((a = ? OR b = ?) AND c = ?) AND d = ?", conditionBuilder.build()); + Assert.assertEquals(ListUtil.of("A", "B", "C", "D"), conditionBuilder.getParamValues()); } }