diff --git a/src/main/java/com/alibaba/druid/hbase/HBaseResultSet.java b/src/main/java/com/alibaba/druid/hbase/HBaseResultSet.java index 674a0804ce..ce108c70b2 100644 --- a/src/main/java/com/alibaba/druid/hbase/HBaseResultSet.java +++ b/src/main/java/com/alibaba/druid/hbase/HBaseResultSet.java @@ -16,6 +16,7 @@ public class HBaseResultSet extends ResultSetBase { private HBaseStatementInterface statement; private ResultScanner scanner; private Result result; + private byte[] family = Bytes.toBytes("d"); public HBaseResultSet(HBaseStatementInterface statement, ResultScanner scanner){ super(statement); @@ -60,13 +61,21 @@ public class HBaseResultSet extends ResultSetBase { public Object getObjectInternal(int columnIndex) { return null; } - + @Override public String getString(String columnName) throws SQLException { + byte[] bytes = getBytes(columnName); + return Bytes.toString(bytes); + } + + public byte[] getBytes(String columnName) throws SQLException { + if ("@ROW".equals(columnName)) { + return result.getRow(); + } + byte[] qualifier = Bytes.toBytes(columnName); - byte[] family = Bytes.toBytes("d"); byte[] value = result.getValue(family, qualifier); - return Bytes.toString(value); + return value; } @Override diff --git a/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java b/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java new file mode 100644 index 0000000000..e7fee41bc9 --- /dev/null +++ b/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java @@ -0,0 +1,5 @@ +package com.alibaba.druid.hbase.exec; + +public interface ExecutePlan { + +} diff --git a/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java b/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java new file mode 100644 index 0000000000..e74572da44 --- /dev/null +++ b/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java @@ -0,0 +1,17 @@ +package com.alibaba.druid.hbase.exec; + +import org.apache.hadoop.hbase.client.HTableInterface; + +public class SingleTableQueryExecutePlan implements ExecutePlan { + + private HTableInterface htable; + + public HTableInterface getHtable() { + return htable; + } + + public void setHtable(HTableInterface htable) { + this.htable = htable; + } + +} diff --git a/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest.java b/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest.java index 789a1c01b0..7b56644e80 100644 --- a/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest.java +++ b/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest.java @@ -16,7 +16,10 @@ public class HBaseDriverTest extends TestCase { PreparedStatement stmt = conn.prepareStatement("SELECT * FROM test"); ResultSet rs = stmt.executeQuery(); while (rs.next()) { + System.out.print(rs.getString("@ROW")); + System.out.print(' '); System.out.print(rs.getString("id")); + System.out.println(); } rs.close(); stmt.close();