`
jeast
  • 浏览: 70474 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

SQL解析类库介绍

 
阅读更多

1. Jsqlparser http://jsqlparser.sourceforge.net/

 

 

       JSqlParser能够解析SQL语句并它翻译成一个Java类层次。它产生的层次可以使用访问者模式导航。

 


2.  SQLJEP http://sqljep.sourceforge.net/

 

       SQLJEP 是一个用来解析和仿真执行SQL语句的Java类库。支持几乎所有 Oracle 和 MaxDB 的函数。SQLJEP 使用 JavaCC 来做词法分析。

使用方法示例:

ResultSet rs = statement.excute("SELECT ID,SUM,SALE_DATE from test");
ResultSetJEP sqljep = new ResultSetJEP("ID in (1,2,3) and SUM>100 and SALE_DATE>trunc(sysdate)-7");
try {
   sqljep.addConstant("sysdate", new java.util.Date());
   sqljep.parseExpression(rs);
   whille (rs.next()) {
      System.out.println(sqljep.getValue());
   }
}
catch (ParseException e) {
   e.printStackTrace();
}

 

 


3.SqlBuilder  http://openhms.sourceforge.net/sqlbuilder/

 

     SqlBuilder 是一个Java的类库,它试图帮你避免在Java程序内直接书写SQL查询的痛苦。你只需要使用 SqlBuilder 的方法,它就可以帮你生成对应的 SQL 数据库查询语句,例如下面一个SQL语句:
String selectQuery = "SELECT " + T1_COL1 + "," + T1_COL2 + "," +  T2_COL1 + " FROM " + TABLE1 + " " + T1 + " INNER JOIN " +  TABLE2 + " " + T2 + " ON (" + T1_IDCOL + " = " + T2_IDCOL +  ") ORDER BY " + T1_COL1;对应的 SqlBuilder 的代码是:

 

String selectQuery =  (new SelectQuery()) .addColumns(t1Col1, t1Col2, t2Col1).addJoin(SelectQuery.JoinType.INNER_JOIN, joinOfT1AndT2)  .addOrderings(t1Col1)  .validate().toString();

 


4.Querydsl  http://www.querydsl.com/

 

    Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句。它采用API代替拼凑字符串来构造查询语句。可跟 Hibernate 和 JPA 等框架结合使用。

 

 

分享到:
评论
1 楼 Fx_demon 2015-02-12  
JSqlParser 怎么把Oracle 查询语句额返回的列字段大写的替换成原来查询的列字段???
如:Select Name from user 查询出Name 字段变成大写的NAME 我想是原来的Name .

相关推荐

Global site tag (gtag.js) - Google Analytics