Возможно, вы захотите использовать код из проекта Alibaba Druid . Хотя этот проект спроектирован как сложная библиотека пула соединений, он поддерживает очень продвинутый синтаксический анализатор и AST для ANSI SQL и не-ANSI диалектов, таких как MySQL, Oracle, SQL Server и т. Д. Проект с открытым исходным кодом и имеет очень либеральная версия Apache License 2.0.
Основными точками входа в эту часть библиотеки является SQLUtils.java . Вы можете использовать значения, возвращенные из SQLUtils.parseStatements
, чтобы получить доступ к типизированной модели операторов:
List<SQLStatement> statements = SQLUtils.parseStatements(sql, JdbcConstants.MYSQL);
for (SQLStatement statement : statements) {
if (statement instanceof MySqlCreateTableStatment) {
MySqlCreateTableStatment createTable = (MySqlCreateTableStatment) statement;
// Use methods like: createTable.getTableSource()
}
}