码迷,mamicode.com
首页 > 数据库 > 详细

Jsqlparser源码编译环境搭建(原创)

时间:2015-10-09 22:55:28      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

一、JSQLParser介绍

JSQLParser是一款开源的SQL语句解析器,使用它可以把SQL语句解析成一组层次分明的java类。
JSQLParser的项目地址为:
https://github.com/JSQLParser/JSqlParser/wiki#what-is-jsqlparser 我下载到的版本为0.9.4。

二、搭建环境介绍

  1. Java版本为JDK1.8;
  2. JSQLParser版本为0.9.4,我是从上面的项目地址中下载到的;
  3. Eclipse版本为Mars Release (4.5.0)

三、导入源码工程

3.1 导入Maven项目

首先我们将下载到的源码解压后得到的项目文件夹导入到Eclipse中,注意这个时候我们要以Maven项目的形式导入,如下图:
技术分享
我导入后的情况是这样:
技术分享
有很多未知的错误,下面我们一一解决。

3.2 添加依赖库

打开项目中的pom.xml文件,从其中的下面这段代码中我们可以看出,JSQLParser依赖Junit4.11,commons-io 2.4:
技术分享

然后我们查看项目中Maven的依赖库中是否已经有这些依赖库,我在导入之后自带了这些依赖库,因此不需要再添加,如果你的项目中没有这些依赖库,我们可以分别下载,在通过Build Path中的Library添加这些库,具体的下载和添加依赖库请百度。
技术分享

然后根据官方文档https://github.com/JSQLParser/JSqlParser/wiki ,需要添加一些代码(红色部分),注意图中圆圈的部分,这表示当前的JSQLParse的版本号,我的是0.9.4,千万不能填错,否则会有一些类找不到(可能和版本有关系),这个部分后来发现,其实是用于添加jsqlparse0.9.4.jar库的,这个步骤做了之后,就不需要做步骤3.5了,找不到的类会直接调用库中的。
技术分享

3.3 修复一些BUG

即使我们做了上面一些工作,pom.xml文件中还是存在两个错误:
技术分享
错误的提示信息为:
技术分享
通过百度,我找到了一个解决办法 http://blog.sina.com.cn/s/blog_6accbcc30101duig.html,
在< plugins >< /plugins >标签的外面添加一个< pluginManagement >< /pluginManagement >的标签。
像这样:

  1. <build>
  2. <pluginManagement>
  3. <plugins>
  4. <plugin>
  5. ...
  6. </plugin>
  7. ...
  8. </plugins>
  9. </pluginManagement>
  10. </build>

这个时候应该红叉叉的错误提示就应该没有了。

3.5 使用JavaCC生成一些类

在我们做完以上步骤之后,项目中还存在很多错误(如果没有的话,祝贺你已经安装成功了),都是由于找不到类造成的,这是因为JSQlParse是基于JavaCC的(关于JavaCC(http://www.cnblogs.com/Gavin_Liu/archive/2009/03/07/1405029.html),
JSQLParser源码中SQL解析那部分是使用JavaCC来生成的,在JSQLParser的源码中,你可以看到JSqlParserCC.jj这样一个文件。
这里我们先需要安装JavaCC,在Eclipse中有一个JavaCC的插件,具体安装方法,可以参考这里(http://eclipse-javacc.sourceforge.net/)
安装完成之后,找到下面这个文件,
技术分享
在这个文件上右击,选择图中红色部分:
技术分享
一会之后就会生成很多Java文件,把这些新生成的Java文件复制到这里:
技术分享

另外说一点,凡是在src/test/resources中的所有存在错误的文件都可以删除,这些文件都是作者写的例子,有些代码比较老,和当前版本不兼容造成的。





Jsqlparser源码编译环境搭建(原创)

标签:

原文地址:http://www.cnblogs.com/wanghaiwei/p/4865220.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!