引入Phoenix jar
在maven项目中引入Phoenix jar包:
org.apache.phoenix
phoenix-core
4.8.0-HBase-1.1
备注:版本需与hbase版本一致,否则会出现问题使用JDBC访问Phoenix
Phoenix除了提供SQLLine这种命令方式,同时提供了JDBC代码的访问方式。
packagecom.dajiangtai.phoenix;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.ResultSetMetaData;
importjava.sql.SQLException;
importjava.sql.Statement;
/**
* phoenix测试类
* @authorJohn
*
*/
publicclassPhoenixTest {
publicstaticConnection getConnection(){
Connection con;
try{
//设置连接类名
Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
//设置连接URL
con = DriverManager.getConnection("jdbc:phoenix:master:2181");
returncon;
} catch(Exception e) {
// TODOAuto-generated catch block
e.printStackTrace();
returnnull;
}
}
//查询方法
publicvoidquery(String sql) throwsSQLException{
//创建连接
Connection con = getConnection();
Statement stmt = con.createStatement();
//执行查询
ResultSet rs = stmt.executeQuery(sql);
//获取元数据信息
ResultSetMetaData rsmd = rs.getMetaData();
intcolumnCount = rsmd.getColumnCount();
//获取列名
StringBuilder sb = newStringBuilder();
for(inti = 1;i<=columnCount;i++){
String columnName = rsmd.getColumnLabel(i);
sb.append(columnName+"\t");
}
if(sb.length()>0){
sb.setLength(sb.length()-1);
System.out.println(sb.toString());
//查询结果
while(rs.next()){
sb = newStringBuilder();
for(inti=1;i<=columnCount;i++){
sb.append(rs.getString(i)+"\t");
}
if(sb.length()>0){
sb.setLength(sb.length()-1);
System.out.println(sb.toString());
}
}
}
//关闭连接
con.close();
}
/**
* @paramargs
* @throwsSQLException
*/
publicstaticvoidmain(String[] args) throwsSQLException {
// TODOAuto-generated method stub
PhoenixTest test = newPhoenixTest();
//查询Phoenix表WEB_STAT所有记录
test.query("select * from WEB_STAT");
}
}
执行结果如下所示: