HBase Phoenix JDBC example

Phoenix is an apache project that attempts to provide an ANSI SQL standard interface to HBase data. This is just a quick implementation of it. Notice it has transactional semantics.

Code below…

import java.sql.*;
import java.util.*;

public class phoenixTest {
  public static void main(String args[]) throws Exception {
    Connection conn;
    Properties prop = new Properties();
    Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
    conn =  DriverManager.getConnection("jdbc:phoenix:localhost:/hbase-unsecure");
    System.out.println("got connection");
    ResultSet rst = conn.createStatement().executeQuery("select * from stock_symbol");
    while (rst.next()) {
      System.out.println(rst.getString(1) + " " + rst.getString(2));
    }
    System.out.println(conn.createStatement().executeUpdate("delete from stock_symbol"));
    conn.commit();
    rst = conn.createStatement().executeQuery("select * from stock_symbol");
    while (rst.next()) {
      System.out.println(rst.getString(1) + " " + rst.getString(2));
    }
    System.out.println(conn.createStatement().executeUpdate("upsert into stock_symbol values('IBM','International Business Machines')"));
    conn.commit();
  }
}

…with the call example below…

[[email protected] ~]# env | grep CLASSPATH
CLASSPATH=.:/root/phoenix-4.1.0-bin/hadoop2/phoenix-4.1.0-client-hadoop2.jar
[[email protected] ~]# java phoenixTest
log4j:WARN No appenders could be found for logger (org.apache.hadoop.conf.Configuration.deprecation).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
got connection
IBM International Business Machines
1
1
[[email protected] ~]#