我正在寻找一款Java开源的SQL美化器或格式化器,可以用来清理使用openArchitectureWare生成的DDL语句。
对于“在线代码美化和格式化工具”中的答案都没有用,而且我也无法让Simple SQL Formatter正常工作。
我正在寻找一款Java开源的SQL美化器或格式化器,可以用来清理使用openArchitectureWare生成的DDL语句。
对于“在线代码美化和格式化工具”中的答案都没有用,而且我也无法让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();
在Hibernate v3.3.2.GA中,org.hibernate.pretty.Formatter已经不存在了。
你可以使用它的替代品:org.hibernate.jdbc.util.BasicFormatterImpl
对于Hibernate 4.0+,请使用org.hibernate.engine.jdbc.internal.BasicFormatterImpl。
Formatter f = new BasicFormatterImpl();
String formatted_sql_code = f.format(ugly_sql_code);
SQL Development Tools Project是eclipse Data Tools Platform的一部分。
介绍如何使用SQL Query Parser的页面中,对SQLQuerySourceFormat的使用说明非常简单,其提供以下选项:
也许 jsqlparser 对你有用。
并不像你想象的那么容易找到,因为有很多已经废弃的项目。实际上,我没有找到它,所以最终自己做了一个(基于H2解析器——如果一切都失败了,可以联系我)。因此,我不知道它是否有美化程序,但在上面编写一个应该足够简单明了。
它基于语法和JavaCC,所以与其用antlr重新发明轮子,可能更好的选择。您可能会发现,如果需要支持复杂语句中各种方言的SQL,任何基于语法的方法都会让您失望。
这个行得通吗 - SQL格式化程序。
BasicFormatterImpl
和DDLFormatterImpl
。https://github.com/lbtc-xxx/sql-beautifulier - Kohei Nozaki