Skip to content

JDBC操作Phoenix

此处演示一个标准的JDBC连接操作,实际开发中会直接使用别的框架(比如Spark或者Flink)内嵌的Phoenix连接。

1. 添加maven依赖

新建maven项目,配置pom.xml:

xml
<dependency>
    <groupId>org.apache.phoenix</groupId>
    <artifactId>phoenix-client-embedded-hbase-2.6</artifactId>
    <version>5.2.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-1.2-api</artifactId>
    <version>2.24.3</version>
</dependency>

2. 编写代码

创建PhoenixClient类:

java
public class PhoenixClient {
    public static void main(String[] args) throws SQLException {
        // 1.添加链接
        String url = "jdbc:phoenix:hadoop102,hadoop103,hadoop104:2181";
        Properties pros = new Properties();
        pros.setProperty("phoenix.schema.isNamespaceMappingEnabled", "true");
        pros.setProperty("phoenix.schema.mapSystemTablesToNamespace", "true");
        // 2.创建连接
        Connection conn = DriverManager.getConnection(url, pros);
        // 5.编译 SQL 语句
        PreparedStatement ps = conn.prepareStatement("select * from \"bigdata\".\"user\"");
        // 6.执行语句
        ResultSet resultSet = ps.executeQuery();
        // 7.输出结果
        while (resultSet.next()){
            System.out.println(resultSet.getString(1) + ":" +
                    resultSet.getString(2) + ":" + resultSet.getString(3));
        }
        // 8.关闭资源
        conn.close();
        // 由于 Phoenix 框架内部需要获取一个 HBase 连接,所以会延迟关闭
        // 不影响后续的代码执行
        System.out.println("end....");
    }
}

运行结果:
Alt text