druid sqlparser使用例子
2024-08-23 22:15:40
package com.alibaba.druid.bvt.sql.mysql; import java.util.List; import org.junit.Assert; import com.alibaba.druid.sql.MysqlTest;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlSchemaStatVisitor;
import com.alibaba.druid.stat.TableStat;
import com.alibaba.druid.stat.TableStat.Column; public class MySqlDeleteTest_0 extends MysqlTest { public void test_0() throws Exception {
String sql = "DELETE a1, a2 FROM t1 AS a1 INNER JOIN t2 AS a2 WHERE a1.id=a2.id;"; MySqlStatementParser parser = new MySqlStatementParser(sql);
List<SQLStatement> statementList = parser.parseStatementList();
SQLStatement statemen = statementList.get(0);
// print(statementList); Assert.assertEquals(1, statementList.size()); MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
statemen.accept(visitor); // System.out.println("Tables : " + visitor.getTables());
// System.out.println("fields : " + visitor.getColumns());
// System.out.println("coditions : " + visitor.getConditions());
// System.out.println("orderBy : " + visitor.getOrderByColumns()); Assert.assertEquals(2, visitor.getTables().size());
Assert.assertEquals(2, visitor.getColumns().size());
Assert.assertEquals(2, visitor.getConditions().size()); Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("t1")));
Assert.assertTrue(visitor.getTables().containsKey(new TableStat.Name("t2"))); Assert.assertTrue(visitor.getColumns().contains(new Column("t1", "id")));
Assert.assertTrue(visitor.getColumns().contains(new Column("t2", "id")));
}
}
最新文章
- Asp.Net MVC中使用ACE模板之Jqgrid
- Protocol Buffer技术
- mysql zip 版本配置方法
- ◆ 火狐浏览器去除JS方法:
- UVa 1642 (综合) Magical GCD
- 九度OJ 1514 数值的整数次方【算法】
- UVA 11762 Race to 1(记忆化+期望)
- [iOS 开发]UITableView第一行显示不完全
- ";双非";应届生校招如何获得大厂青睐?(内附技术岗超全求职攻略)
- 【洛谷P3649】回文串
- Django中间件基础笔记
- Julia 下载 安装 juno 开发环境搭建
- Context 上下文
- javaScript高级教程(八)-----正则表达式温故知新
- 管道和xargs区别
- How to Design a Good&#160;API and Why it Matters
- 对spring boot 之AutoConfiguration 的理解
- Elasticsearch-2.4.3的单节点安装(多种方式图文详解)
- mysql存储过程优化
- 集合栈计算机(The SetStack Computer, ACM/ICPC NWERC 2006,Uva12096)