JSqlParser系列之一源代码运行

JSqlParser系列之一源代码运行(原)

博客园 百味木屋原创,转载请注明出处。

一、JSQLParser介绍

  JSQLParser是一款开源的SQL语句解析器,使用它可以把SQL语句解析成一组层次分明的java类。JSQLParsers所能解释的SQL语句不受具体数据库的限制,在支持标准SQL的同时,也支持一些特定数据库的方法。如支持Oracle关联语法(+),PostgreSQL的方法using::,以及关系运算符!=,等等。JSQL解析的结果可以使用Visitor模式进行比较方便的访问,后续将有介绍。

  JSQLParser的项目地址为:https://github.com/JSQLParser/JSqlParser/wiki#what-is-jsqlparser 我下载到的版本为0.9.2,后续的一些介绍也以该版本为基础。

二、源代码工程搭建

  不是特别熟悉MAVEN,拿到源代码后,查看了一下pom.xml文件。

可以看出,JSQLParser依赖Junit 4.11,commons-io 2.4,Junit Eclipse已自带,commons-io 2.4 可以直接到apache去下载,地址为:

http://commons.apache.org/proper/commons-io/download_io.cgi

这样建立好工程,增加上面两个jar包,工程还是报错。如下:

怎么会缺少类呢?原来JSQLParser源码中SQL解析那部分是使用JAVACC来生成的,在JSQLParser的源码中,你可以看到JSqlParserCC.jj这样一个文件:

该文件为JAVACC源文件(后续计划学习一下JAVACC,届时笔记奉上),下载一个JAVACC5.0(https://java.net/projects/javacc/downloads/download/javacc-5.0.zip),解压,命令行转到bin目录,拷贝一份JSqlParserCC.jj到bin目录,输入: javacc JSqlParserCC.jj

可以看到,左侧目录中已生成几个java源代码文件,拷贝这些文件到相应的包,错误即可消除。至此,JSQLParser源代码工程搭建完毕。

时间: 2024-11-08 17:22:43

JSqlParser系列之一源代码运行的相关文章

解决ArcGIS 10.1系列软件安装运行的相关问题

(Destop) 1.卸载旧版本软件,ArcGIS Destop要最后卸载,还有清除注册表 2.要安装破解版本里面的Lisence Manager 3.安装顺序Lisence Manager->Destop->,注意装完LisenceManager后,要停止服务,然后安装Destop,然后把许可文件覆盖到LisenceManager的bin文件下面的service.txt,然后启动服务,重读许可 4.打开ArcGIS Administrator,选择Advanced (ArcInfo)浮动版,

JSqlParser系列之二代码结构(原)

JSqlParser系列之二代码结构(原) 博客园 百味木屋原创,转载请注明出处. 上一篇文章简单介绍如何建立JSqlParser工程,本章对JSqlParser工程的代码结构作大致地介绍. 一.目录结构 JSqlParser的目录结构比较简单,主要有表达式,解析器,语句处理几个目录.下面这张图给出了一个具体的SQL语句与表达式: 接下来,简要介绍一下在JSqlParser中几个抽象概念. 二.SQL语句(statement) JSqlPaser将所有的SQL语句抽象为Statement,Sta

【转】Tomcat7.0.42源代码运行环境搭建

转自:http://tyrion.iteye.com/blog/1903608 以前看过Tomcat5的一部分源代码,当时只看了个大概的启动分析,后来看了<How Tomcat Works>这本书,讲的还行,出版的较早,所以是基于Tomcat4的代码的分析,Tomcat已经release到7了,很多后来添加的特性与新的实 现方式那本书里面没有涉及.下半年业余时间的主要任务就是完成Tomcat7各个我感兴趣的点的系列文章. 先说下我的源码分析的环境搭建吧,用的是eclipse Juno Serv

Spark入门实战系列--4.Spark运行架构

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1. Spark运行架构 1.1 术语定义 lApplication:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序,包含了一个Driver 功能的代码和分布在集群中多个节点上运行的Executor代码: lDriver:Spark中的Driver即运行上述Application的main()函数并且创建SparkContext

Caffe学习系列(9):运行caffe自带的两个简单例子

为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载.但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了. 注意:在caffe中运行所有程序,都必须在根目录下进行,否则会出错 1.mnist实例 mnist是一个手写数字库,由DL大牛Yan LeCun进行维护.mnist最初用于支票上的手写数字识别, 现在成了DL的入门练习库.征对mnist识别的专门模型是Lenet,算是最早的cnn模型了. mnist数据训

iBatisnet系列(二) 配置运行环境和日志处理

http://hjf1223.cnblogs.com/archive/2006/04/24/383119.aspx 刚爬完鼓山回来,想到这篇刚刚开始,不敢怠慢,洗完澡休息一下就到电脑旁边来了.现在我开始介绍一下iBatis的配置和日志处理吧. iBatis基本的运行环境配置主要由两个文件组成,分别是SqlMap.config和Provider.config.它们是必需的两个配置文件,基中SqlMap.config的功能类似于web.config或者app.config,是iBatis核心的配置文

Flink1.6系列之—分布式运行环境

Distributed Runtime Environment(分布式运行环境) Tasks and Operator Chains 在分布式执行情况下,Flink将operator subtasks 链接到一起,形成任务(task).每个任务(subtask)由一个线程执行.将operator subtasks链接到任务中是一个好处:它减少了线程到线程的切换和缓冲的开销,并在减少延迟的同时提高了总体吞吐量.链接行为是可以进行配置的;有关详细信息,请参阅此文档. 下图中有5个子任务,因此就有5个

JVM系列之四:运行时数据区

1. JVM架构图 Java虚拟机主要分为五大模块:类装载器子系统.运行时数据区.执行引擎.本地方法接口和垃圾收集模块. 2. JDK1.7内存模型-运行时数据区域 根据<Java 虚拟机规范(Java SE 7 版)>规定,Java 虚拟机所管理的内存如下图所示. 1-3为线程私有,4-5为线程共享 1.程序计数器:为了线程切换后能恢复到正确的执行位置.线程私有2.Java虚拟机栈:虚拟机栈描述的是Java方法执行的内存模型:方法被调用时创建栈帧-->局部变量表->局部变量.对象

Android应用系列:完美运行GIF格式的ImageView(附源码)

前言 我们都知道ImageView是不能完美加载Gif格式的图片,如果我们在ImageView中src指定的资源是gif格式的话,我们将会惊喜的发觉画面永远停留在第一帧,也就是不会有动画效果.当然,经过略加改造,我们是可以让gif在ImageView上完美加载的. 正文 Android给我们提供了一个Movie类,可以让我们实现加载gif格式资源的目标.我们需要导入android.graphics.Movie这个包,当然这个也是Android自带的.所以我们的主要方法是继承一个ImageView