Phoenix JDBC訪問


  1. 引入Phoenix jar

在maven項目中引入Phoenix jar包:

<dependency>

            <groupId>org.apache.phoenix</groupId>

            <artifactId>phoenix-core</artifactId>

            <version>4.8.0-HBase-1.1</version>

    </dependency>

備注:版本需與hbase版本一致,否則會出現問題

  1. 使用JDBC 訪問Phoenix

Phoenix除了提供SQLLine這種命令方式,同時提供了JDBC代碼的訪問方式。

package com.dajiangtai.phoenix;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

/**

* phoenix測試類

* @author John

*

*/

public class PhoenixTest {

    

    public static Connection getConnection(){

        Connection con;

        try {

            //設置連接類名

            Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");

            //設置連接URL

            con = DriverManager.getConnection("jdbc:phoenix:master:2181");

            return con;

        } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

            return null;

        }

        

    }

    //查詢方法

    public void query(String sql) throws SQLException{

        //創建連接

        Connection con = getConnection();

        Statement stmt = con.createStatement();

        

        //執行查詢

        ResultSet rs = stmt.executeQuery(sql);

        //獲取元數據信息

        ResultSetMetaData rsmd = rs.getMetaData();

        int columnCount = rsmd.getColumnCount();

        

        //獲取列名

        StringBuilder sb = new StringBuilder();

        for(int i = 1;i<=columnCount;i++){

            String columnName = rsmd.getColumnLabel(i);

            sb.append(columnName+"\t");

        }

        

        if(sb.length()>0){

            sb.setLength(sb.length()-1);

        System.out.println(sb.toString());

        

        //查詢結果

        while(rs.next()){

            sb = new StringBuilder();

            for(int i=1;i<=columnCount;i++){

                sb.append(rs.getString(i)+"\t");

            }

            if(sb.length()>0){

                sb.setLength(sb.length()-1);

            System.out.println(sb.toString());

            }

        }

        }

        //關閉連接

        con.close();

    }

 

    /**

     * @param args

     * @throws SQLException

     */

    public static void main(String[] args) throws SQLException {

        // TODO Auto-generated method stub

        PhoenixTest test = new PhoenixTest();

        //查詢Phoenix表WEB_STAT所有記錄

        test.query("select * from WEB_STAT");

    }

 

}

執行結果如下所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM