当前位置: 首页 > news >正文

品牌商品怎么做防伪网站孔宇seo

品牌商品怎么做防伪网站,孔宇seo,华建设计网站,网站项目分析怎么做 方法一、前言 在开发中&#xff0c;有时我们可能会需要获取SQL中的表名&#xff0c;那么因为不同的数据源类型SQL会存在部分差异&#xff0c;那么我们就可以使用alibaba 的druid包实现不同的数据源类型的sql解析。 二、引入相关maven依赖 <dependency><groupId>com.a…

一、前言
在开发中,有时我们可能会需要获取SQL中的表名,那么因为不同的数据源类型SQL会存在部分差异,那么我们就可以使用alibaba 的druid包实现不同的数据源类型的sql解析。

二、引入相关maven依赖

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency>

三、通过工具类SqlUtils实现对SQL的解析。

public class QualitySqlUtils {/***  根据sql及数据源类型获取表名*/public static List<String> getSelectSqlTable(String sql, String dbType) {List<String> tableList = new ArrayList<>();List<SQLStatement> stmtList = SQLUtils.parseStatements(sql, dbType);SchemaStatVisitor visitor;for (SQLStatement sqlStatement : stmtList) {if (DbType.mysql.name().equalsIgnoreCase(dbType)) {visitor = new MySqlSchemaStatVisitor();} else if (DbType.hive.name().equalsIgnoreCase(dbType)) {visitor = new HiveSchemaStatVisitor();} else if (DbType.postgresql.name().equalsIgnoreCase(dbType)) {visitor = new PGSchemaStatVisitor();} else if (DbType.oracle.name().equalsIgnoreCase(dbType)) {visitor = new OracleSchemaStatVisitor();} else {visitor = new SchemaStatVisitor(DbType.of(dbType));}sqlStatement.accept(visitor);Map<TableStat.Name, TableStat> tables = visitor.getTables();for (Map.Entry<TableStat.Name, TableStat> entry: tables.entrySet()){String value = entry.getValue().toString();if (StringUtils.isNotBlank(value)) {tableList.add(entry.getKey().getName());}}}return tableList;}/*** 根据sql获取查询的字段*/public static Map<String, String> getSelectSqlColumn(String sql, String dbType) {Map<String, String> columnMap = new HashMap<>();List<SQLStatement> stmtList = SQLUtils.parseStatements(sql, dbType);for (int i = 0; i < stmtList.size(); i++) {SQLStatement stmt = stmtList.get(i);if (stmt instanceof SQLSelectStatement) {SQLSelectStatement sqlSelectStatement = (SQLSelectStatement) stmt;SQLSelect select = sqlSelectStatement.getSelect();SQLSelectQueryBlock query = (SQLSelectQueryBlock) select.getQuery();List<SQLSelectItem> selectList = query.getSelectList();selectList.forEach(item->{columnMap.put(item.getExpr().toString(), item.getAlias());});}}return columnMap;}
}

三、测试结果

public class testDemo{public static void main(String[] args) {String sql = "select t.* from table1 as t left join table2 t2 on t.id = t2.id";List<String> tableList =getSelectSqlTable(sql, "mysql");System.out.println("获取到的表名: "+tableList);}
}

运行结果如下:

在这里插入图片描述
大家感兴趣可以尝试下。

http://www.zhongyajixie.com/news/47977.html

相关文章:

  • 莆田网站关键词优化整合营销什么意思
  • 广州什么地方好玩的景点推荐seo运营工作内容
  • 做网站需要了解什么百度主页入口
  • ps做的网站保存不了jpg建立网站需要什么
  • 网上做设计的网站有哪些百度推广开户免费
  • 西安建设网站排名下载百度地图2022最新版官方
  • 网站建设成本分析市场调研报告500字
  • 网站开发设计课程深圳龙岗区布吉街道
  • 咸阳网站推广哪有培训seo
  • 在线黑科技网站百度搜索引擎优化详解
  • 下载网页模板的网站专业黑帽seo
  • php怎样做网站管理后台百度售后电话人工服务
  • 阿里云网站建设b站不收费网站
  • 网站开发毕设需求分析买域名
  • 家用机能否做网站服务器今日热点新闻头条排行榜
  • 国内做设计的网站百度网盘登录入口网页版
  • 北京app定制开发公司seo网站优化培
  • wordpress恢复老版本性价比高seo的排名优化
  • 新网做网站怎么上传南昌seo排名公司
  • 工信部 网站备案规定电销系统软件排名
  • 白银做网站论坛推广技巧
  • 凡科真的是免费做企业网站seo测试工具
  • 广州建网站腾虎关键词排名软件
  • 找关键词的网站怎么做业务推广技巧
  • 100种增加网站流量的方法苏州百度推广公司
  • 塘沽集团网站建设会计培训班需要学多长时间
  • 可以做试题的网站艺术培训学校招生方案
  • 什么网站立刻买东西简单网页制作模板
  • 企业网站域名注册查询营销推广方案包括哪些内容
  • 做搜狗网站排名软件成人培训班有哪些课程