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

        }

     

    }

    执行结果如下所示:

  • 相关阅读:
    web前端图片上传
    二级联动
    前端框架
    获取URL域名
    监听横屏竖屏
    下载中间件、爬虫中间件
    起始url的调度原理
    自定义代理IP
    爬虫深度控制
    手动处理cookie(实现一个点赞爬虫)
  • 原文地址:https://www.cnblogs.com/hackerer/p/14136515.html
Copyright © 2020-2023  润新知