java sql分析器_java sql解析器比较druid sql parser vs jsqlparser vs fdb-sql-parser
先上结论。
功能上:druid sql parser(支持分区、WITH、DUAL等。使用mysql语法解析时,已知oracle的一些操作符会被转为mysql,如|| 转为OR。使用oracle解析器时,union all里面的括号会被移到外面,从而导致可能执行出错) > jsqlparser(不支持分区) > fdb-sql-parser(不支持很复杂的SQL)。因此,首先排除fdb-sql-parser。都不支持不执行SQL语句解析语义,调用preparestatement即可,不是问题。
易用性:jsqlparser > druid sql parser(文档和javadoc是在TMD懒了)。就druid sql parser和jsqlparser而言,核心只要理解访问者模式,其中核心又为com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor#visit及其父类,使用例子可以参见https://www.jianshu.com/p/3fb67691d3c8。
所以,如果需要广泛使用,应选择druid sql parser而不是jsqlparser。
注:除了自己写过滤器外,druid也支持sql注入过滤器,可参考:https://my.oschina.net/yysue/blog/1618558,https://www.oschina.net/question/928524_106630
druid sql parser的官方文档:https://github.com/alibaba/druid/wiki/SQL-Parser。后续补充实战手册,我们在分布式查询引擎的重写、分库分表合并、用户名映射、基于sql自动生成智能的查询页面都是基于druid扩展实现的(一开始用jsqlparser,但是太弱了,后面大部分用druid重写了)。
jsqlparser官方文档:http://jsqlparser.sourceforge.net/example.php
原文:https://www.cnblogs.com/zhjh256/p/12001547.html
java sql分析器_java sql解析器比较druid sql parser vs jsqlparser vs fdb-sql-parser相关推荐
- java xml 查询_Java DOM解析器 - 查询XML文档
演示示例 这是需要我们查询的输入XML文件: Ferarri 101 Ferarri 201 Ferarri 301 Lamborgini 001 Lamborgini 002 Lamborgini ...
- java xml解析器_Java XML解析器
java xml解析器 Java XML parser is used to work with xml data. XML is widely used technology to transpor ...
- jsqlparser mysql_java sql解析器比较druid sql parser vs jsqlparser vs fdb-sql-parser
先上结论. 功能上:druid sql parser(支持分区.WITH.DUAL等.使用mysql语法解析时,已知oracle的一些操作符会被转为mysql,如|| 转为OR.使用oracle解析器 ...
- java sax解析器_Java SAX解析器示例
java sax解析器 SAX Parser in java provides API to parse XML documents. SAX parser is different from DOM ...
- java jdom格式_Java全面解析XML格式串(JDOM解析)
搜索热词 Java全面解析XML格式串(JDOM解析) import java.io.IOException; import java.io.StringReader; import java.uti ...
- java 取余_JAVA面试解析(有赞)
一面引言 说在前面的话: 本文适合人群:急等着换工作的人 我承认刷面试题很有用的,纵观几年来的JAVA面试题,你会发现每家都差不多.比如,你仔细观察,你会发现,HashMap的出现几率未免也太高了吧! ...
- java检查注入sql框架_Java:检查器框架
java检查注入sql框架 我在JavaOne 2012上 了解的有趣的工具之一是Checker Framework . Checker Framework的网页之一 指出 ,Checker Fram ...
- java卡安全域_java – 在安全管理器下解析许多域后,程序内存不足?
我有一个服务,要解析的域名来自不受信任的来源.最近,它因内存不足而崩溃.我缩小了可能的原因,并得出结论,它必须与最近的DNS请求流量有关.但是,该服务在解析域名后不存储任何内容,因此这似乎不太可能,但 ...
- java interceptor用法_java自定义拦截器用法实例
本文实例讲述了java自定义拦截器及其用法.分享给大家供大家参考.具体如下: LoginInterceptor.java文件如下: package com.tq365.util; import jav ...
最新文章
- MySql 基于C_API的数据库封装
- Strange Towers of Hanoi (POJ1958)
- 基于Python——实现远程下载sftp文件(只下载.zip文件)
- c++11-template template Parameter
- 事务的特性和隔离级别
- python策略模式包含角色_详解Python设计模式之策略模式
- server sql top速度变慢解决方案_SQL Server数据库查询速度慢的原因和解决方法
- Update your Twitter status using php
- windows phone 如何获得手机的分辨率
- html5做在线音乐,html5实现在线响应式音乐播放器
- Redis常见配置文件详解
- ffmpeg AVFilter介绍
- RDKit入门教程(1)——RDKit 安装 (Win10)
- 一个有意思的VMP破解 旺旺吧上网经营管理系统 破解
- VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行
- CSDN:2020年度CSDN博客之星评选竞赛——180号【一个处女座的程序猿】,感谢您,投上的宝贵一票,感谢!感恩!
- spring事务出现的超卖问题
- 如何在Cent OS7安装jdk
- 这次的新计算,很全能!
- Unraid6.9.1开心版安装
热门文章
- dnf登录游戏自动连接服务器,游戏登录-新手引导-地下城与勇士官方网站-腾讯游戏...
- 调试oracle,如何调试Oracle ICS问题 | Soo Smart!
- 管理运筹学软件计算机解咋看,管理运筹学 第3章线性规划问题的计算机求解
- CDN和双线机房相比有何优势
- 绿坝娘的加速器/绿坝娘的收藏夹
- FunHouse-F10-MPro-1005G1-Hackintosh-Opencore 黑苹果efi引导文件
- shopex仿红孩子商城模板
- go语言 第三方包安装方法_安装第三方软件到电视的方法,看直播应该下载什么软件?...
- 如何开机禁止启动touchPad笔记本触摸板
- 在C++中实现foreach循环,比for_each更简洁!