先上结论。

功能上: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相关推荐

  1. java xml 查询_Java DOM解析器 - 查询XML文档

    演示示例 这是需要我们查询的输入XML文件: Ferarri 101 Ferarri 201 Ferarri 301 Lamborgini 001 Lamborgini 002 Lamborgini ...

  2. java xml解析器_Java XML解析器

    java xml解析器 Java XML parser is used to work with xml data. XML is widely used technology to transpor ...

  3. jsqlparser mysql_java sql解析器比较druid sql parser vs jsqlparser vs fdb-sql-parser

    先上结论. 功能上:druid sql parser(支持分区.WITH.DUAL等.使用mysql语法解析时,已知oracle的一些操作符会被转为mysql,如|| 转为OR.使用oracle解析器 ...

  4. java sax解析器_Java SAX解析器示例

    java sax解析器 SAX Parser in java provides API to parse XML documents. SAX parser is different from DOM ...

  5. java jdom格式_Java全面解析XML格式串(JDOM解析)

    搜索热词 Java全面解析XML格式串(JDOM解析) import java.io.IOException; import java.io.StringReader; import java.uti ...

  6. java 取余_JAVA面试解析(有赞)

    一面引言 说在前面的话: 本文适合人群:急等着换工作的人 我承认刷面试题很有用的,纵观几年来的JAVA面试题,你会发现每家都差不多.比如,你仔细观察,你会发现,HashMap的出现几率未免也太高了吧! ...

  7. java检查注入sql框架_Java:检查器框架

    java检查注入sql框架 我在JavaOne 2012上 了解的有趣的工具之一是Checker Framework . Checker Framework的网页之一 指出 ,Checker Fram ...

  8. java卡安全域_java – 在安全管理器下解析许多域后,程序内存不足?

    我有一个服务,要解析的域名来自不受信任的来源.最近,它因内存不足而崩溃.我缩小了可能的原因,并得出结论,它必须与最近的DNS请求流量有关.但是,该服务在解析域名后不存储任何内容,因此这似乎不太可能,但 ...

  9. java interceptor用法_java自定义拦截器用法实例

    本文实例讲述了java自定义拦截器及其用法.分享给大家供大家参考.具体如下: LoginInterceptor.java文件如下: package com.tq365.util; import jav ...

最新文章

  1. MySql 基于C_API的数据库封装
  2. Strange Towers of Hanoi (POJ1958)
  3. 基于Python——实现远程下载sftp文件(只下载.zip文件)
  4. c++11-template template Parameter
  5. 事务的特性和隔离级别
  6. python策略模式包含角色_详解Python设计模式之策略模式
  7. server sql top速度变慢解决方案_SQL Server数据库查询速度慢的原因和解决方法
  8. Update your Twitter status using php
  9. windows phone 如何获得手机的分辨率
  10. html5做在线音乐,html5实现在线响应式音乐播放器
  11. Redis常见配置文件详解
  12. ffmpeg AVFilter介绍
  13. RDKit入门教程(1)——RDKit 安装 (Win10)
  14. 一个有意思的VMP破解 旺旺吧上网经营管理系统 破解
  15. VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行
  16. CSDN:2020年度CSDN博客之星评选竞赛——180号【一个处女座的程序猿】,感谢您,投上的宝贵一票,感谢!感恩!
  17. spring事务出现的超卖问题
  18. 如何在Cent OS7安装jdk
  19. 这次的新计算,很全能!
  20. Unraid6.9.1开心版安装

热门文章

  1. dnf登录游戏自动连接服务器,游戏登录-新手引导-地下城与勇士官方网站-腾讯游戏...
  2. 调试oracle,如何调试Oracle ICS问题 | Soo Smart!
  3. 管理运筹学软件计算机解咋看,管理运筹学 第3章线性规划问题的计算机求解
  4. CDN和双线机房相比有何优势
  5. 绿坝娘的加速器/绿坝娘的收藏夹
  6. FunHouse-F10-MPro-1005G1-Hackintosh-Opencore 黑苹果efi引导文件
  7. shopex仿红孩子商城模板
  8. go语言 第三方包安装方法_安装第三方软件到电视的方法,看直播应该下载什么软件?...
  9. 如何开机禁止启动touchPad笔记本触摸板
  10. 在C++中实现foreach循环,比for_each更简洁!