wangyan188 发表于 2018-10-17 12:53:58

开源SQL翻译器CowNewSQL的使用方法

  CowNewSQL 支持直接调用翻译器和JDBC驱动两种使用方式。

[*]直接调用翻译器
  首先到CowNewSQL 的网站上下载最新的CowNewSQL,下载完成后解压安装包,将
  retrotranslator-runtime-1.0.7.jar、antlr.jar、commons-lang-2.3.jar以及cownewsql.jar加入CLASSPATH ,调用类com.cownew.cownewsql.imsql.common.DialectManager的createTranslator方法创建一个翻译器,然后调用翻译器的translateSQL方法来将标准SQL语句翻译成特定数据库平台的SQL语句。
  DialectManager的createTranslator方法接受一个字符串类型的参数来指定目标数据库的类型,目前接受四个值”MSSQLServer”、”MYSQL”、“DB2”和”Oracle”。
  由于被翻译的SQL 语句有可能是多句,所以翻译器的translateSQL 方法返回值为字符串数组,每个数据元素表示一个翻译后的语句。
  举例:
  import com.cownew.cownewsql.imsql.ISQLTranslator;
  import com.cownew.cownewsql.imsql.common.DataBaseTypeEnum;
  import com.cownew.cownewsql.imsql.common.DialectManager;
  import com.cownew.cownewsql.imsql.common.TranslateException;

  public>  {
  public static void main(String[] args) throws TranslateException
  {
  ISQLTranslator tx = DialectManager.createTranslator(“MYSQL”);
  String[] venderSQLs;
  venderSQLs = tx.translateSQL("select top 10 * from t");
  System.out.println("翻译后的SQL:" + venderSQLs);
  }
  }
  运行结果:翻译后的SQL:SELECT * FROM t LIMIT 0, 10

[*]JDBC驱动方式使用
  CowNewSQL提供了以JDBC驱动方式使用的支持(支持最新的JDBC4.0标准)。通过 这种方式用户无需修改系统的任何代码,只要修改原有的JDBC连接字符串就可以轻松的将CowNewSQL 融入系统,使用CowNewSQL 的JDBC 驱动后系统中所有的SQL 语句在送到数据库系统中执行前都将会自动进行翻译。
  CowNewSQL的JDBC驱动类为:
  com.cownew.cownewsql.imsql.jdbc.DBDriver
  连接字符串格式为:
  jdbc:cownewsql:目标数据库类型:目标数据库JDBC驱动类:原JDBC连接字符串
  使用方式举例:
  原有程序连接到Oracle数据库,使用的Oracle驱动类为:
  oracle.jdbc.driver.OracleDriver
  JDBC连接字符串为:
  jdbc:oracle:thin:@192.168.88.128:1521:XE
  我们只要将CowNewSQL的Jar包(包括cownewsql***.jar、antlr.jar、commons-lang**.jar、
  retrotranslator-runtime**.jar等)加入程序的ClassPath,然后修改使用的数据库驱动为:
  com.cownew.cownewsql.imsql.jdbc.DBDriver
  然后修改JDBC 连接字符串为:
  jdbc:cownewsql:oracle:oracle.jdbc.driver.OracleDriver:jdbc:oracle:thin:@192.168.88.128:1521:XE
  使用JDBC驱动方式不仅可以支持直接调用JDBC来进行数据库操作的系统,而且对于通过数据库连接池或者其他JDBC驱动包装方式访问数据库的方式都适合,这样我们无需修改任何代码就将CowNewSQL翻译器轻松的植入系统。
  end.

页: [1]
查看完整版本: 开源SQL翻译器CowNewSQL的使用方法