ajoo JRC
程序员文章站
2022-07-04 21:16:38
...
http://jrc.dev.java.net
ajoo项目批准了。
想参与的去java.net上申请一个账号吧。告诉ajoo,可以把你加进去。
cvs:
host: cvs.dev.java.net
repository: /cvs
module: /jrc
项目的缘起可以看这里。
http://forum.iteye.com/viewtopic.php?p=132021#132021
项目总共分3部分。
1. jrc的组合子部分,可以生成AST。
checked out code。看到这部分ajoo已经做了。Relation,
这部分就是SQL的语法元素组合子。ajoo称之为AST。
2. 写parser,把ansi sql翻译成ast。准备用jparsec来写。
这部分是我的任务。要写一个Parser,根据SQL的解析结果产生AST。
jparsec的基本思想参见 Java Functional In Action
http://forum.iteye.com/viewtopic.php?t=7951
jparsec项目参见
http://jparsec.codehaus.org/
3. Visitor
通过实现ast的visitor接口来针对具体dbms生成sql代码。(这里面应该还是有一些设计的技巧可用,来尽量在不同dbms之间重用代码。)
DB Dialect, native SQL.
---------------
JRC的使用过程:
Relation r = parser.parse(sql);
Relation r1 = r.top(n).where(...);
String sql = oracleVisitor.visit(r1);
ajoo项目批准了。
想参与的去java.net上申请一个账号吧。告诉ajoo,可以把你加进去。
cvs:
host: cvs.dev.java.net
repository: /cvs
module: /jrc
项目的缘起可以看这里。
http://forum.iteye.com/viewtopic.php?p=132021#132021
项目总共分3部分。
1. jrc的组合子部分,可以生成AST。
checked out code。看到这部分ajoo已经做了。Relation,
这部分就是SQL的语法元素组合子。ajoo称之为AST。
2. 写parser,把ansi sql翻译成ast。准备用jparsec来写。
这部分是我的任务。要写一个Parser,根据SQL的解析结果产生AST。
jparsec的基本思想参见 Java Functional In Action
http://forum.iteye.com/viewtopic.php?t=7951
jparsec项目参见
http://jparsec.codehaus.org/
3. Visitor
通过实现ast的visitor接口来针对具体dbms生成sql代码。(这里面应该还是有一些设计的技巧可用,来尽量在不同dbms之间重用代码。)
DB Dialect, native SQL.
---------------
JRC的使用过程:
Relation r = parser.parse(sql);
Relation r1 = r.top(n).where(...);
String sql = oracleVisitor.visit(r1);
推荐阅读