阅读网站建设中国建设教育协会是个什么网站

pingmian/2025/10/7 15:04:02/文章来源:
阅读网站建设,中国建设教育协会是个什么网站,速升网网站是多少钱,asp.net网站后台源码根据sql解析获取到表到表, 字段到字段间的关系,即血缘关系。实际上这是从sql文本获取到数据流的过程。 大致步骤如下#xff1a; 1.sql文本进行词法分析 2.sql语法分析获取到AST抽象语法树 3.访问AST抽象语法树根据语法结构推测出数据的流向,例如create as select from 这种结…根据sql解析获取到表到表, 字段到字段间的关系,即血缘关系。实际上这是从sql文本获取到数据流的过程。 大致步骤如下 1.sql文本进行词法分析 2.sql语法分析获取到AST抽象语法树 3.访问AST抽象语法树根据语法结构推测出数据的流向,例如create as select from 这种结构,数据就是从from的表流向select出来的ResultSet中间结果集最后流程create的表中, 字段可以使用字段名进行匹配如果可以连接到元数据库是可以查询到表和字段的如果仅仅根据sql文本分析那么一般只能根据select中的字段名结合语法进行猜测。 一般来说,步骤1,2比较底层会有很多工具为我们完成, 像antlr(开源语法分析器),druid(基于antlr),使用这些工具可以直接从sql获取到AST语法树, 然后我们直接进入第3个步骤遍历语法树获取自己想要的信息即可。比如在解析create table A as select * from table B; 后判断出语句为create from句式从语法树中获取create的表A和from的表B,这样表级别的血缘关系就获取到了。 下面以antlr为例对这三个步骤进行详细的说明 sql文本进行Lexer词法分析 词法分析是将sql文本字符序列转换为单词Token序列的过程。 进行词法分析的程序或者函数叫作词法分析器Lexical analyzer简称Lexer也叫扫描器Scanner。 比如sql中的关键字select, from, table等,antlr根据一个规则g4文件去识别这些关键字。 g4文件是antlr生成词法解析规则和语法解析规则的基础。该文件是我们自定义的文件名后缀需要是.g4。g4文件描述了Token及Token间语法。antlr根据g4文件的描述先进行词法解析,将字符串解析为单词Token序列。 借个图做个示例: sql语法分析parse获取到AST抽象语法树 语法分析器根据g4文件描述的规则将收到的Tokens组织起来并转换成为目标语言语法定义所允许的序列,并组装为AST抽象语法树结构。 例如下面的sql可以被解析为下图中的ast语法树。 create table stu_tj row format delimited as SELECT b.id,b.name FROM (select oldId id ,name from stu WHERE id ‘2’) b ; 访问AST抽象语法树根据语法结构推测出数据的流向。 语法树中包含了sql的全部信息 可以从中获取到所需信息。但是访问代码并不好写因为语法树中封装的对象类型很多不同的类型需要不同的访问方式一般使用visitor访问者模式进行访问。大部分的业务代码就在这里访问sql解析后的AST语法树Abstract Syntax Tree然后获取源表和目标表之间的对应关系即所谓血缘关系。 例如create as select from 这种结构,数据就是从from的表流向select出来的ResultSet中间结果集最后流程create的表中, 字段可以使用字段名结合语法进行匹配推理。 druid提供了visitor接口访问AST语法树需要借用visitor设计模式调用accept方法即可访问AST语法树,注意accept方法是调用入参对象的接口方法。druid已实现的visitor功能不够全无法处理别名等一些需求需要自己实现visitor。可以直接继承 SQLASTVisitorAdapter 也可以根据不同数据库类型继承不同的visitor。 // 自定义访问者 继承SQLASTVisitorAdapter class SQLCustomedVisitor extends SQLASTVisitorAdapter { protected boolean hasLimit false; Override public boolean visit(SQLLimit x) { System.out.println(x.getRowCount()); hasLimit true; return false; } public boolean isHasLimit() { return hasLimit; } }不同数据库类型继承不同的visitor https://github.com/alibaba/druid/wiki/SQL_Parser_Demo_visitor public class MySqlSchemaStatVisitor extends SchemaStatVisitor implements MySqlASTVisitor {public MySqlSchemaStatVisitor() {super (JdbcConstants.MYSQL);}public boolean visit(SQLSelectStatement x) {if (repository ! null x.getParent() null) {repository.resolve(x);}return true;} }参考 https://www.jianshu.com/p/21f2afca65e8 https://baike.baidu.com/item/antlr/9368750 https://zhuanlan.zhihu.com/p/121545985 https://github.com/alibaba/druid/wiki/SQL_Parser_Demo_visitor https://github.com/alibaba/druid/wiki/SQL-Parser https://blog.csdn.net/shy_snow/article/details/133373567

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wifiu盘做网站陕西网站备案注销

一、算法思想 给定一个无序数列,模拟一个指针从第0位开始向后,始终保持当前位置左边的数列是有序的。 指针位置上的元素依次与前面的元素比较,当遇到小于自己的数或右边已经没有元素时,都停止比较,开始下一轮。 生活…

深圳龙岗高端网站建设网站程序开发外包

Transformer概述 相比LSTM和GRU模型,Transformer模型有两个显著的优势: Transformer能够利用分布式GPU进行并行训练,提升模型训练效率。 在分析预测更长的文本时,捕捉间隔较长的语义关联效果更好。 Transformer模型的作用 基于seq…

网站开发公司照片网站建设调研

在部署一个cms项目到服务器上的时候,因为cms的模板比较老,服务器上用的php是5.3.3版(大于5.3,可以认为是新的),有些页面会显示“deprecated”类别的错误信息。安全起见要抑制页面中的错误信息输出&#xff…

学做网站的书哪些好定制网站报价

入口我们从使用功能上去读取源码,通常的用法是这个样子-> 我们设置layoutmanager,GridLayouManager 继承LinearLayoutManager,所以我们就LinearLayoutManager 为基准查看rv.layoutManager GridLayoutManager(this,5)rv.addItemDecoration…

咚咚抢网站怎么做的怎么免费推广自己的业务

题外话:栅格布局最初是在web 端应用的,为了解决一个系统在不同的屏幕,和不同的设备上可以不进行多次开发的问题,希望一次开发可以最大化的适配用户的不同类型设备,解决方案:将屏幕采用断点的方式进行布局分…

seo网站优化方法阿里云商标注册入口

欧拉函数的定义 1∼N1∼N 中与 NN 互质的数的个数被称为欧拉函数&#xff0c;记为 ϕ(N)ϕ(N)。 若在算数基本定理中&#xff0c;Npa11pa22…pammNp1a1p2a2…pmam&#xff0c;则&#xff1a; ϕ(N)ϕ(N) Np1−1p1p2−1p2…pm−1pm 代码&#xff1a; #include<iostream>…

五金表带厂东莞网站建设电商网站建设课程设计实验报告

要将CentOS从动态内网IP改为静态IP&#xff0c;需要按照以下步骤进行操作&#xff1a; 打开终端并以root用户身份登录。 编辑网络配置文件。在终端中输入以下命令&#xff1a; vi /etc/sysconfig/network-scripts/ifcfg-eth0 这个命令将打开eth0配置文件。如果您的网络接口…

石家庄高端网站开发wordpress更新文章收录

JavaBean 是特殊的 Java 类&#xff0c;使用 Java 语言书写&#xff0c;并且遵守 JavaBean API 规范。 接下来给出的是 JavaBean 与其它 Java 类相比而言独一无二的特征&#xff1a; 提供一个默认的无参构造函数。需要被序列化并且实现了 Serializable 接口。可能有一系列可读…

重庆建设工程造价信息总站制作网站软件网站

Python实现学生信息管理系统-详解版 个人简介实验名称&#xff1a;学生信息管理系统系统功能实验步骤详讲添加入住学生信息删除学生的住宿信息修改学生的住宿信息查询学生的住宿信息显示所有学生住宿信息显示所有请假学生的信息 运行截图展示1.主界面2.添加新的入住学生信息3.显…

关于网站建设管理工作的报告沈阳京科医院

目录 一、docker是什么 核心概念 二、docker安装 1、卸载docker 2、使用yum 安装 三、docker常用命令 1、帮助命令 2、镜像命令 1&#xff09;查看镜像 2&#xff09;查询镜像 3&#xff09;拉取镜像 4&#xff09;删除镜像 3、容器命令 四、容器数据卷 五、Dock…

包头建设厅官方网站怎么查网站是哪个公司做的

一、设置参数&#xff1a;java虚拟机可以使用JAVA_HOME/bin/java&#xff08;JAVA_HOME为jdk的安装目录&#xff09;。java进程命令行语法&#xff1a; java [options] class [args...] classpath path&#xff1a;指定Java虚拟机应该搜索类文件的路径。与javac编译器选项-cp相…

湛江网站关键词优化西安中高风险地区

前言:Hello大家好,我是小哥谈。SimSPPF是YOLOv6中提出的一种改进的空间金字塔池化方法,它是SPPF的升级版。SimSPPF通过在不同尺度上使用不同大小的池化核来提取特征,从而提高了检测器的性能。与SPPF相比,SimSPPF可以在不增加计算成本的情况下提高检测器的性能。本节课就教…

重庆网站建设团队做维修那个网站发布信息好

一、概述 本文主要介绍如何配置USART&#xff0c;并通过USART打印验证结果。以stm32f10为例&#xff0c;将PA9、PA10复用为USART功能&#xff0c;使用HSE PLL输出72MHZ时钟 APB2 clk不分频提供配置9600波特率。波特率计算公式如下&#xff1a; fck即为APB2 clk参考计算&#xf…

做网站百度一下整屏网站模板

12月26日,由中国领先的财经信息服务平台蓝鲸、记者工作平台鲸平台主办,主流财经通讯社财联社联合主办的第四届“鲸潮奖”在沪揭晓,知名睡眠科技品牌MLILY梦百合入选,荣获“2023年度最‘硬’科技奖”,其他获奖品牌还有新希望乳业、上海家化、洽洽食品、361、汤臣倍健等。 鲸潮奖…

做境外旅游的网站温州建筑信息平台

相信不少小伙伴面试时&#xff0c;都被问到过这样一个问题&#xff1a;进程和线程的区别是什么&#xff1f;大学老师会告诉我们&#xff1a;进程是资源分配的基本单位&#xff0c;线程是调度的基本单位。说到调度&#xff0c;就不得不提到CPU的上下文切换了。 何为CPU上下文切换…

深圳网站设计小程序外贸 网站推广

对我而言&#xff0c;使用Rx-java的最大好处之一就是无论底层调用是同步还是异步&#xff0c;因此代码看起来都完全相同&#xff0c;因此该条目的标题也是如此。 考虑一个非常简单的客户端代码用例&#xff0c;它执行三个缓慢运行的调用并将结果合并到一个列表中&#xff1a; …

手机建造网站江苏SEO网站建设

题目链接&#xff1a;http://poj.org/problem?id3041 没看题&#xff0c;网上搜最大二分匹配搜到的 匈牙利算法&#xff0c;深搜一次最多增加一个匹配 代码&#xff1a; #include <stdio.h> #include <stdlib.h> int tu[505][505]; int mx[505],my[505]; int flag…

wordpress网站百度数据表格模板网站

目录 一、环境搭建 二、信息收集 1、主机发现 2、指纹识别 三、漏洞复现 1、dirsearch目录探测 2、sqlmap注入测试 3、文件包含漏洞 4、Knockd敲门服务 5、ssh爆破 ​​​​​​​6、提权 四、提取flag 一、环境搭建 Vulnhub靶机下载&#xff1a; 官网地址&#xff1a;https://…

环县网站怎么做湘潭专业sem优化

Css 处理 提取 Css 成单独文件 Css 文件目前被打包到 js 文件中&#xff0c;当 js 文件加载时&#xff0c;会创建一个 style 标签来生成样式 这样对于网站来说&#xff0c;会出现闪屏现象&#xff0c;用户体验不好 我们应该是单独的 Css 文件&#xff0c;通过 link 标签加载…

柳城网站天津平台网站建设制作

来源&#xff1a;混沌巡洋舰圣塔菲研究院4月就智能的本质&#xff08;不管其是人类的&#xff0c;还是机器的&#xff09;举行的研讨会&#xff0c;旨在通过跨学科的整合来促进人工智能的发展。研讨会期间&#xff0c;来自不同学科的大牛聚集在一起&#xff0c;讨论如何将智力分…