From ed9e67318d5a46c4982ef4dc3fd96595b5678d3b Mon Sep 17 00:00:00 2001 From: LeonemZhang Date: Fri, 4 Aug 2023 11:39:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20SqlBuilder=E5=A2=9E=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=B8=AAformat=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java | 9 +++++++++ .../src/test/java/cn/hutool/db/sql/SqlFormatterTest.java | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java b/hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java index a2a52634d..2dd2b5d25 100644 --- a/hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java +++ b/hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java @@ -609,6 +609,15 @@ public class SqlBuilder implements Builder { return this.build(); } + /** + * 格式化SQL语句 + * @return SqlBuilder + */ + public SqlBuilder format() { + this.sql.replace(0, this.sql.length(), SqlFormatter.format(this.sql.toString())); + return this; + } + // --------------------------------------------------------------- private method start /** diff --git a/hutool-db/src/test/java/cn/hutool/db/sql/SqlFormatterTest.java b/hutool-db/src/test/java/cn/hutool/db/sql/SqlFormatterTest.java index e6c355ad4..2fbd7c24b 100755 --- a/hutool-db/src/test/java/cn/hutool/db/sql/SqlFormatterTest.java +++ b/hutool-db/src/test/java/cn/hutool/db/sql/SqlFormatterTest.java @@ -18,4 +18,11 @@ public class SqlFormatterTest { String format = SqlFormatter.format(sql); System.out.println(format); } + + @Test + public void testSqlBuilderFormat() { + String sql = "SELECT `link_table_a`.`value_a` AS `link_table_a.value_a`,`link_table_a`.`id` AS `link_table_a.id`,`link_table_b`.`value_b` AS `link_table_b.value_b`,`link_table_c`.`id` AS `link_table_c.id`,`link_table_b`.`id` AS `link_table_b.id`,`link_table_c`.`value_c` AS `link_table_c.value_c` FROM `link_table_a` INNER JOIN `link_table_b` ON `link_table_a`.`table_b_id` = `link_table_b`.`id` INNER JOIN `link_table_c` ON `link_table_b`.`table_c_id` = `link_table_c`.`id`"; + String format = SqlBuilder.of(sql).format().build(); + System.out.println(format); + } }