sql 语法解释器jsqlparser
是用java 开发的解析器, 可以生成java类层次结构.
主页地址:
<br>
http://jsqlparser.sourceforge.net
可以完美解析 表的 增删查改等操作.
展开它的源码你会发现.基本不用看api就可以使用,因为它是如此的类似sql
只要你会java 只要你会写sql 那么你就会使用 jsqlparser .
例如: 查询sql 他会解析成 select 类. 该对象 包含有表名, 字段名, where 子句表达式.
这个是查询的where子句调试截图:
<br><img src="http://dl.iteye.com/upload/attachment/441212/b6119f2b-aa9b-3e50-a067-42016e50dd79.png" alt="">
相应的还有很多,只要你在sql中能找到的关键字.他都有相应的获取方式和调用. 就等你慢慢发掘了.
更新sql 解析成: update 类 . 对象包含表明,字段,where 子句表达式..
如下图所示:
<br><img src="http://dl.iteye.com/upload/attachment/441214/211ad97c-558b-3e98-b979-56e55da4d57a.png" alt="">
jsqlparser源码结构:
<br><img src="http://dl.iteye.com/upload/attachment/441230/60d53959-70d2-3085-8a71-e51df891ab62.jpg" alt="">
官方的jar包只支持jdk1.6. 因为其中用上的string类的 isempty()方法. 但是jdk1.5中并没有该方法.
所以本人就改了下.其实感觉官方没有必要使用jdk1.6的. 仅仅因为一个方法的调用.而牺牲掉了更多的1.5平台应用.
得不偿失.
嘿嘿
附上本人的工程. 基于上面写了个简单的测试 . 在<a>testsrc 下的 ly包中. 是一个解析where子句的. 目的是要做一个sql和</a>
lucene 转换器. 将sql语法解析成lucene 查询语法. 这个测试例子只是简单的解析了where子句.功能不全.但是思想都在.
目的是将繁琐不太结构话的 sql语句. 变成java 层次对象.
源码及测试工程下载:
jsqlparser.7z
<img alt="">