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")));
}
}

  

最新文章

  1. Asp.Net MVC中使用ACE模板之Jqgrid
  2. Protocol Buffer技术
  3. mysql zip 版本配置方法
  4. ◆ 火狐浏览器去除JS方法:
  5. UVa 1642 (综合) Magical GCD
  6. 九度OJ 1514 数值的整数次方【算法】
  7. UVA 11762 Race to 1(记忆化+期望)
  8. [iOS 开发]UITableView第一行显示不完全
  9. &quot;双非&quot;应届生校招如何获得大厂青睐?(内附技术岗超全求职攻略)
  10. 【洛谷P3649】回文串
  11. Django中间件基础笔记
  12. Julia 下载 安装 juno 开发环境搭建
  13. Context 上下文
  14. javaScript高级教程(八)-----正则表达式温故知新
  15. 管道和xargs区别
  16. How to Design a Good&#160;API and Why it Matters
  17. 对spring boot 之AutoConfiguration 的理解
  18. Elasticsearch-2.4.3的单节点安装(多种方式图文详解)
  19. mysql存储过程优化
  20. 集合栈计算机(The SetStack Computer, ACM/ICPC NWERC 2006,Uva12096)

热门文章

  1. shell脚本学习(3)文件判断
  2. JavaScript 如何编写计算器
  3. 笨办法学Python(二十一)
  4. leetcode:栈
  5. Java UUID Generator(JUG)
  6. oracle 创建SDO_Geometry表
  7. 位图算法-hash算法的后继应用
  8. cocosBuilder生成cbbi文件,绑定到cocos2d-x
  9. splay版
  10. 2.Mysql集群------Mycat读写分离