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源代碼工程搭建完畢。