【问题标题】:How to format java string to SQL syntax? [duplicate]如何将java字符串格式化为SQL语法? [复制]
【发布时间】:2014-07-10 01:03:24
【问题描述】:

我已经搜索了该网站,但没有找到我真正需要的东西。我有一条 SQL 语句

String unformattedSQL = "select id, name, address, zip    from   schema123.person  where name like '%stu%'";

我正在寻找像 formatSQL(sqlString) 这样的方法,它可以为我提供原始 SQL 语句的格式化版本,这样

String formattedSQL = formatSQL(unformatted);
System.out.println(formattedSQL);

会给我以下文本(带有正确的缩进)

SELECT id, name, 
       address, zip 
FROM schema123.person 
WHERE name LIKE '%stu%'

原来的SQL语句其实很长,而且是用别的方法动态生成的(这个方法我改不了),所以没办法把SQL放到外部文件里。 SQL 执行完毕后,我需要把它放到一个日志文件中。我希望在日志文件中格式化 SQL 语句。

最好的方法是什么?为了概括这个问题,如何针对 XML、C# 等其他语法执行此操作。也许类似于 Google Code Prettify 但针对 Java ...

【问题讨论】:

  • @DonRoby 是的,你是对的
  • 如果将问题标记为重复问题的人会在上面的黄色通知中提供指向重复问题的链接,那就太好了。这样我们可以更快地找到我们需要的信息。
  • 标记为重复到一个没有接受答案的问题,干得好,伙计们

标签: java sql string-formatting code-formatting


【解决方案1】:

你可以去apache openJPA project提供的SQLFormatter

【讨论】:

  • 感谢您的提示。它有效,但不像我预期的那样。 SQLFormatter 仅在原始 SQL 字符串或多或少格式良好的情况下才能正常工作。但在我的情况下,查询可能非常难看,即缩进不一致、多级子查询、冒号后的空行。我需要以 Eclipse 格式化源代码的方式来解决这个问题。此外,最好能定义格式规则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
相关资源
最近更新 更多