Apache Tajo 简明教程

Apache Tajo - JDBC Interface

Apache Tajo 提供 JDBC 接口来连接和执行查询。我们可以使用相同的 JDBC 接口从基于 Java 的应用程序连接 Tajo。本节让我们来了解如何使用 JDBC 接口连接 Tajo 并执行我们示例 Java 应用程序中的命令。

Download JDBC Driver

访问以下链接下载 JDBC 驱动程序 − http://apache.org/dyn/closer.cgi/tajo/tajo-0.11.3/tajo-jdbc-0.11.3.jar

现在,您的计算机已经下载了“tajo-jdbc-0.11.3.jar”文件。

Set Class Path

要在程序中使用 JDBC 驱动程序,请按以下方式设置类路径−

CLASSPATH = path/to/tajo-jdbc-0.11.3.jar:$CLASSPATH

Connect to Tajo

Apache Tajo 以单个 jar 文件的形式提供 JDBC 驱动程序,并且可以 @ /path/to/tajo/share/jdbc-dist/tajo-jdbc-0.11.3.jar 获得此文件。

连接 Apache Tajo 的连接字符串格式如下−

jdbc:tajo://host/
jdbc:tajo://host/database
jdbc:tajo://host:port/
jdbc:tajo://host:port/database

在此,

  1. host − TajoMaster 的主机名。

  2. port − 服务器正在监听的端口号。默认端口号为 26002。

  3. database − 数据库名称。默认数据库名称为 default。

Java Application

让我们了解一下 Java 应用程序。

Coding

import java.sql.*;
import org.apache.tajo.jdbc.TajoDriver;

public class TajoJdbcSample {
   public static void main(String[] args) {
      Connection connection = null;
      Statement statement = null;
      try {
         Class.forName("org.apache.tajo.jdbc.TajoDriver");
         connection = DriverManager.getConnection(“jdbc:tajo://localhost/default");
         statement = connection.createStatement();
         String sql;
         sql = "select * from mytable”;
         // fetch records from mytable.
         ResultSet resultSet = statement.executeQuery(sql);
         while(resultSet.next()){
            int id  = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.print("ID: " + id + ";\nName: " + name + "\n");
         }
         resultSet.close();
         statement.close();
         connection.close();
      }catch(SQLException sqlException){
         sqlException.printStackTrace();
      }catch(Exception exception){
         exception.printStackTrace();
      }
   }
}

可以使用以下命令编译和运行该应用程序。

Compilation

javac -cp /path/to/tajo-jdbc-0.11.3.jar:. TajoJdbcSample.java

Execution

java -cp /path/to/tajo-jdbc-0.11.3.jar:. TajoJdbcSample

Result

上述命令将生成以下结果 −

ID: 1;
Name: Adam

ID: 2;
Name: Amit

ID: 3;
Name: Bob

ID: 4;
Name: David

ID: 5;
Name: Esha

ID: 6;
Name: Ganga

ID: 7;
Name: Jack

ID: 8;
Name: Leena

ID: 9;
Name: Mary

ID: 10;
Name: Peter