1.简单的语句解析
单个语句
String sql = "SELECT * FROM TABLE1";
//方法1
Statement statement = CCJSqlParserUtil.parse(sql);
//方法2
CCJSqlParser ccjSqlParser = new CCJSqlParser(sql);
Statement statement = ccjSqlParser.Statement();
多个语句
String sqls = "SELECT * FROM TABLE1;SELECT * FROM TABLE2";
//方法1
Statements statements = CCJSqlParserUtil.parseStatements(sqls);
//方法2
CCJSqlParser ccjSqlParser = new CCJSqlParser(sqls);
Statements statements = ccjSqlParser.Statements();
List<Statement> statementList = statements.getStatements();
Statement类代表SQL语句的叙述整体。
2.简单的表达式解析
//表达式
Expression expression = CCJSqlParserUtil.parseExpression("a+b*c");
//条件表达式
Expression expression = CCJSqlParserUtil.parseCondExpression("A='123'");
Expression类代表表达式。
3.从SQL中提取表名
String sql = "SELECT * FROM TABLE1";
Statement statement = CCJSqlParserUtil.parse(sql);
TablesNamesFinder tablesNamesFinder = new TablesNamesFinder();
List<String> tableList = tablesNamesFinder.getTableList(statement);
TablesNamesFinder类可以提取Statement类中的表名列表。
4.将别名应用于所有表达式
Select select = (Select) CCJSqlParserUtil.parse("SELECT A,B,C FROM TABLE1");//此处的运行时类是Select
SelectBody selectBody = select.getSelectBody();
AddAliasesVisitor addAliasesVisitor = new AddAliasesVisitor();
addAliasesVisitor.setPrefix("B");//设置前缀(如不进行设置默认为“A”)
selectBody.accept(addAliasesVisitor);
System.out.println(selectBody.toString());//SELECT A AS B1, B AS B2, C AS B3 FROM TABLE1
5.向SELECT添加一列或表达式
Select select = (Select) CCJSqlParserUtil.parse("SELECT A FROM TABLE1");
SelectUtils.addExpression(select, new Column("B"));
System.out.println(select);//SELECT A, B FROM TABLE1
其中Column类代表列,SelectUtils类是SELECT语句工具类。
作者:Jeebiz 创建时间:2019-12-26 13:07
更新时间:2019-12-26 13:09
更新时间:2019-12-26 13:09