zoukankan      html  css  js  c++  java
  • 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+" ");

            }

            

            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)+" ");

                }

                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");

        }

     

    }

    执行结果如下所示:

  • 相关阅读:
    linux 总结一下git reset的各个选项吧
    深入C++的new
    Android中binderDied()以及"Unknown binder error code" 出现的原因说明
    C/C++语言void及void指针深层探索
    Android 不通过USB数据线调试的方法
    Android Browser Gallery3D无法两指手势缩放
    Android eMMC Booting
    android基础知识13:AndroidManifest.xml文件解析
    Package sunjava6jdk is not available Ubuntu 10.04 LTS 安装sunjava6jdk ,出现错误
    SQL Server 2008中Service Broker基础应用(上)
  • 原文地址:https://www.cnblogs.com/hackerer/p/14136515.html
Copyright © 2011-2022 走看看