diff --git a/src/main/java/com/alibaba/druid/hbase/HBaseDriver.java b/src/main/java/com/alibaba/druid/hbase/HBaseDriver.java index cdd8a2a718..4fa5951148 100644 --- a/src/main/java/com/alibaba/druid/hbase/HBaseDriver.java +++ b/src/main/java/com/alibaba/druid/hbase/HBaseDriver.java @@ -15,7 +15,7 @@ public class HBaseDriver implements Driver { return null; } - String rest = url.substring(PREFIX.length() + 1); + String rest = url.substring(PREFIX.length()); info.put("hbase.zookeeper.quorum", rest); 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/test/java/com/alibaba/druid/hbase/HBaseDriverTest.java b/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest.java index 8820f9da57..7b56644e80 100644 --- a/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest.java +++ b/src/test/java/com/alibaba/druid/hbase/HBaseDriverTest.java @@ -11,12 +11,15 @@ import junit.framework.TestCase; public class HBaseDriverTest extends TestCase { public void test_0 () throws Exception { HBaseDriver driver = new HBaseDriver(); - Connection conn = driver.connect("jdbc:druid-hbase::10.20.153.63", new Properties()); + Connection conn = driver.connect("jdbc:druid-hbase:10.20.153.63", new Properties()); 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();