寻找可嵌入的SQL美化器或重新格式化器

Bri*_*ews 29 java sql open-source

我正在寻找一个Java开源美化器或SQL的重新格式化程序,我可以用它来清理我用openArchitectureWare生成的DDL语句.

" Online Code Beautifier和Formatter " 的答案中没有任何内容对我有用,我无法让Simple SQL Formatter为我工作.

Rob*_*ker 47

更新2:

org.hibernate.jdbc.util.BasicFormatterImpl在4.0版本中被移动了.它现在位于:org.hibernate.engine.jdbc.internal.BasicFormatterImpl.

更新1:

技术进步.正如Alex所述,org.hibernate.pretty.Formatter从版本3.3.2.GA开始不再存在.替换是org.hibernate.jdbc.util.BasicFormatterImpl:

String formattedSQL = new BasicFormatterImpl().format(sql);
Run Code Online (Sandbox Code Playgroud)

原始答案:

如果你正在使用Hibernate,他们有一个内置的: org.hibernate.pretty.Formatter

String formattedSQL = new Formatter(sql).format();
Run Code Online (Sandbox Code Playgroud)

  • 我创建了一个独立的SQL更美妙的工具,它使用`BasicFormatterImpl`和`DDLFormatterImpl`.https://github.com/lbtc-xxx/sql-beautifulier (2认同)

Ste*_*nne 5

eclipse 数据工具平台的一部分SQL开发工具项目.

描述如何使用SQL Query Parser的页面非常简单地使用了SQLQuerySourceFormat,它提供了以下选项:

  • preserveSourceFormat =在生成SQL源文本时保留输入源格式的选项
  • statementTerminator =分隔多个SQL语句的字符
  • hostVariablePrefix =主机语言变量之前的字符
  • parameterMarker =标识主机语言参数的字符
  • delimitedIdentifierQuote*=包含分隔标识符的字符,其大小写将保留
  • omitSchema =当前架构(在SQL源中省略,对非限定表引用是隐式的)
  • qualifyIdentifiers =描述如何限定SQL源中的标识符的标志
  • preserveComments =在已解析的SQL源或/和生成的SQL源中保留注释的选项
  • generateCommentsForStatementOnly =仅在完整语句的上下文中为SQL源生成注释的选项,或者如果设置为false,则对于语句的上下文之外的单个SQL查询对象也是如此


Ste*_*han 5

使用Hibernate v3.3.2.GA,org.hibernate.pretty.Formatter不再存在.您可以使用它的替换:org.hibernate.jdbc.util.BasicFormatterImpl

Formatter f = new BasicFormatterImpl();
String formatted_sql_code = f.format(ugly_sql_code);
Run Code Online (Sandbox Code Playgroud)