JSqlParser格式化sql的示例
时间: 2023-09-17 12:07:45 浏览: 276
下面是使用JSqlParser对SQL进行格式化的示例代码:
```java
import java.io.StringReader;
import java.util.List;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.StatementVisitorAdapter;
import net.sf.jsqlparser.statement.select.Select;
import net.sf.jsqlparser.util.TablesNamesFinder;
public class SqlFormatter {
public static void main(String[] args) throws JSQLParserException {
String sql = "SELECT id, name, age FROM users WHERE age > 18 ORDER BY age DESC";
Statement statement = CCJSqlParserUtil.parse(new StringReader(sql));
statement.accept(new StatementVisitorAdapter() {
@Override
public void visit(Select select) {
System.out.println(select.toString());
}
});
TablesNamesFinder tablesNamesFinder = new TablesNamesFinder();
List<String> tableList = tablesNamesFinder.getTableList(statement);
System.out.println(tableList);
}
}
```
在这个示例中,我们首先定义了一个SQL语句,然后使用JSqlParser的`CCJSqlParserUtil.parse()`方法将其解析为一个`Statement`对象。然后,我们使用`StatementVisitorAdapter`的`visit()`方法来遍历`Statement`对象,找到其中的`Select`语句并将其打印出来。
接下来,我们使用`TablesNamesFinder`来获取`Statement`对象中使用的表名列表,并将其打印出来。这个示例只是一个简单的演示,你可以根据自己的需要进行修改和扩展。
阅读全文