我正在寻找一个Java开源美化器或SQL的重新格式化程序,我可以用它来清理我用openArchitectureWare生成的DDL语句.
" Online Code Beautifier和Formatter " 的答案中没有任何内容对我有用,我无法让Simple SQL Formatter为我工作.
更新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);
原始答案:
如果你正在使用Hibernate,他们有一个内置的: org.hibernate.pretty.Formatter
String formattedSQL = new Formatter(sql).format();
eclipse 数据工具平台的一部分是SQL开发工具项目.
描述如何使用SQL Query Parser的页面非常简单地使用了SQLQuerySourceFormat,它提供了以下选项:
preserveSourceFormat =在生成SQL源文本时保留输入源格式的选项
statementTerminator =分隔多个SQL语句的字符
hostVariablePrefix =主机语言变量之前的字符
parameterMarker =标识主机语言参数的字符
delimitedIdentifierQuote*=包含分隔标识符的字符,其大小写将保留
omitSchema =当前架构(在SQL源中省略,对非限定表引用是隐式的)
qualifyIdentifiers =描述如何限定SQL源中的标识符的标志
preserveComments =在已解析的SQL源或/和生成的SQL源中保留注释的选项
generateCommentsForStatementOnly =仅在完整语句的上下文中为SQL源生成注释的选项,或者如果设置为false,则对于语句的上下文之外的单个SQL查询对象也是如此
使用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);