Phoenix Java API通过JDBC操作HBase

Phoenix Java API通过JDBC操作HBase

🗨

使用Phoenix Java api操作HBase,对hbase进行增,删,查。这个过程就想是JDBC一样使用就可以了。

 

①先将phoenix的 core.jar包 和 phoenix的client.jar 包放到lib里。

 

②创建连接,过程和mysql类似

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public Connection GetConnection() {
    Connection cc = null;
    String driver = "org.apache.phoenix.jdbc.PhoenixDriver";
    // String url = "jdbc:phoenix:192.168.206.21:2181";
 
    try {
        Class.forName(driver);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
 
    if (cc == null) {
        try {
            cc = DriverManager.getConnection(url);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    return cc;
}

 

③执行sql语句,对用phoenix对hbase中表进行查询。

QQ截图20141202101221

:代码有点问题,我忘记释放链接了。注意加上。

④ 增,删,操作和查询类似,都是一条sql。

 

public static void main(String[] args) throws SQLException {
        Statement stmt = null;
        ResultSet rset = null;

        String url = "jdbc:phoenix:123.134.190.190:2181";
        Connection con = DriverManager.getConnection(url);
        stmt = con.createStatement();

        stmt.executeUpdate("create table test1 (mykey integer not null primary key, mycolumn varchar)");
        stmt.executeUpdate("upsert into test1 values (1,'Hello')");
        stmt.executeUpdate("upsert into test1 values (2,'World!')");
        con.commit();

        PreparedStatement statement = con.prepareStatement("select * from test1");
        rset = statement.executeQuery();
        while (rset.next()) {
        System.out.println(rset.getString("mycolumn"));
        }
        statement.close();
        con.close();
}

 

⑤说明一下phoenix对hbase修改操作

Phoenix中不存在update的语法关键字,而是upsert ,功能上替代了Insert+update,官方说明为:

UPSERT VALUES
Inserts if not present and updates otherwise the value in the table. The list of columns is optional and if not present, the values will map to the column in the order they are declared in the schema. The values must evaluate to constants.

 

OK 搞定了。


频道:Java