From 10a621db91d3cac70f52e2fff40f1a502c3a737c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Mon, 21 May 2012 09:03:14 +0800 Subject: [PATCH] refactor --- .../alibaba/druid/hbase/exec/ExecutePlan.java | 6 +- .../druid/hbase/exec/ExecutePlanAdapter.java | 6 +- .../druid/hbase/exec/InsertExecutePlan.java | 4 +- .../druid/hbase/exec/ShowTablesPlan.java | 6 +- .../exec/SingleTableQueryExecutePlan.java | 4 +- .../druid/hbase/jdbc/HBaseConnection.java | 8 +- .../druid/hbase/jdbc/HBaseResultSet.java | 4 +- .../druid/hbase/jdbc/HPreparedStatement.java | 161 +---------------- .../hbase/jdbc/HPreparedStatementImpl.java | 165 ++++++++++++++++++ .../alibaba/druid/hbase/jdbc/HStatement.java | 21 +-- .../druid/hbase/jdbc/HStatementImpl.java | 25 +++ .../druid/hbase/jdbc/HStatementInterface.java | 8 - 12 files changed, 212 insertions(+), 206 deletions(-) create mode 100644 src/main/java/com/alibaba/druid/hbase/jdbc/HPreparedStatementImpl.java create mode 100644 src/main/java/com/alibaba/druid/hbase/jdbc/HStatementImpl.java delete mode 100644 src/main/java/com/alibaba/druid/hbase/jdbc/HStatementInterface.java diff --git a/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java b/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java index 2d0735af83..1cf89db325 100644 --- a/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java +++ b/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java @@ -2,12 +2,12 @@ package com.alibaba.druid.hbase.exec; import java.sql.SQLException; -import com.alibaba.druid.hbase.jdbc.HPreparedStatement; +import com.alibaba.druid.hbase.jdbc.HPreparedStatementImpl; import com.alibaba.druid.hbase.jdbc.HResultSet; public interface ExecutePlan { - HResultSet executeQuery(HPreparedStatement statement) throws SQLException; + HResultSet executeQuery(HPreparedStatementImpl statement) throws SQLException; - boolean execute(HPreparedStatement statement) throws SQLException; + boolean execute(HPreparedStatementImpl statement) throws SQLException; } diff --git a/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlanAdapter.java b/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlanAdapter.java index 9fc693945d..94a946a8b2 100644 --- a/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlanAdapter.java +++ b/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlanAdapter.java @@ -2,18 +2,18 @@ package com.alibaba.druid.hbase.exec; import java.sql.SQLException; -import com.alibaba.druid.hbase.jdbc.HPreparedStatement; +import com.alibaba.druid.hbase.jdbc.HPreparedStatementImpl; import com.alibaba.druid.hbase.jdbc.HResultSet; public class ExecutePlanAdapter implements ExecutePlan { @Override - public HResultSet executeQuery(HPreparedStatement statement) throws SQLException { + public HResultSet executeQuery(HPreparedStatementImpl statement) throws SQLException { throw new UnsupportedOperationException(); } @Override - public boolean execute(HPreparedStatement statement) throws SQLException { + public boolean execute(HPreparedStatementImpl statement) throws SQLException { throw new UnsupportedOperationException(); } diff --git a/src/main/java/com/alibaba/druid/hbase/exec/InsertExecutePlan.java b/src/main/java/com/alibaba/druid/hbase/exec/InsertExecutePlan.java index 3be385b4d8..7a5384d7fe 100644 --- a/src/main/java/com/alibaba/druid/hbase/exec/InsertExecutePlan.java +++ b/src/main/java/com/alibaba/druid/hbase/exec/InsertExecutePlan.java @@ -9,7 +9,7 @@ import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.util.Bytes; import com.alibaba.druid.hbase.jdbc.HBaseConnection; -import com.alibaba.druid.hbase.jdbc.HPreparedStatement; +import com.alibaba.druid.hbase.jdbc.HPreparedStatementImpl; import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils; @@ -19,7 +19,7 @@ public class InsertExecutePlan extends SingleTableExecutePlan { private byte[] family = Bytes.toBytes("d"); @Override - public boolean execute(HPreparedStatement statement) throws SQLException { + public boolean execute(HPreparedStatementImpl statement) throws SQLException { try { HBaseConnection connection = statement.getConnection(); String dbType = connection.getConnectProperties().getProperty("dbType"); diff --git a/src/main/java/com/alibaba/druid/hbase/exec/ShowTablesPlan.java b/src/main/java/com/alibaba/druid/hbase/exec/ShowTablesPlan.java index ed54a32e8f..a1a20666ad 100644 --- a/src/main/java/com/alibaba/druid/hbase/exec/ShowTablesPlan.java +++ b/src/main/java/com/alibaba/druid/hbase/exec/ShowTablesPlan.java @@ -10,14 +10,14 @@ import org.apache.hadoop.hbase.client.HBaseAdmin; import com.alibaba.druid.common.jdbc.ResultSetBase; import com.alibaba.druid.common.jdbc.ResultSetMetaDataBase.ColumnMetaData; -import com.alibaba.druid.hbase.jdbc.HPreparedStatement; +import com.alibaba.druid.hbase.jdbc.HPreparedStatementImpl; import com.alibaba.druid.hbase.jdbc.HResultSet; import com.alibaba.druid.hbase.jdbc.HResultSetMetaData; public class ShowTablesPlan implements ExecutePlan { @Override - public HResultSet executeQuery(HPreparedStatement statement) throws SQLException { + public HResultSet executeQuery(HPreparedStatementImpl statement) throws SQLException { try { HBaseAdmin admin = statement.getConnection().getEngine().getHBaseAdmin(); @@ -32,7 +32,7 @@ public class ShowTablesPlan implements ExecutePlan { } @Override - public boolean execute(HPreparedStatement statement) throws SQLException { + public boolean execute(HPreparedStatementImpl statement) throws SQLException { HResultSet resultSet = executeQuery(statement); statement.setResultSet(resultSet); return true; diff --git a/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java b/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java index 7509d19a17..b36fba7409 100644 --- a/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java +++ b/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java @@ -17,7 +17,7 @@ import org.apache.hadoop.hbase.util.Bytes; import com.alibaba.druid.hbase.jdbc.HBaseConnection; import com.alibaba.druid.hbase.jdbc.HBaseResultSet; -import com.alibaba.druid.hbase.jdbc.HPreparedStatement; +import com.alibaba.druid.hbase.jdbc.HPreparedStatementImpl; import com.alibaba.druid.hbase.jdbc.HResultSetMetaData; import com.alibaba.druid.hbase.mapping.HMapping; import com.alibaba.druid.sql.ast.SQLExpr; @@ -70,7 +70,7 @@ public class SingleTableQueryExecutePlan extends SingleTableExecutePlan { } @Override - public HBaseResultSet executeQuery(HPreparedStatement statement) throws SQLException { + public HBaseResultSet executeQuery(HPreparedStatementImpl statement) throws SQLException { try { HBaseConnection connection = statement.getConnection(); String dbType = connection.getConnectProperties().getProperty("dbType"); diff --git a/src/main/java/com/alibaba/druid/hbase/jdbc/HBaseConnection.java b/src/main/java/com/alibaba/druid/hbase/jdbc/HBaseConnection.java index 7b777aab22..f97d2e7fc1 100644 --- a/src/main/java/com/alibaba/druid/hbase/jdbc/HBaseConnection.java +++ b/src/main/java/com/alibaba/druid/hbase/jdbc/HBaseConnection.java @@ -77,7 +77,7 @@ public class HBaseConnection extends ConnectionBase implements Connection { @Override public Statement createStatement() throws SQLException { - return new HStatement(this); + return new HStatementImpl(this); } @Override @@ -156,8 +156,8 @@ public class HBaseConnection extends ConnectionBase implements Connection { } @Override - public HPreparedStatement prepareStatement(String sql) throws SQLException { - return new HPreparedStatement(this, sql); + public HPreparedStatementImpl prepareStatement(String sql) throws SQLException { + return new HPreparedStatementImpl(this, sql); } @Override @@ -184,7 +184,7 @@ public class HBaseConnection extends ConnectionBase implements Connection { @Override public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException { - HPreparedStatement stmt = prepareStatement(sql); + HPreparedStatementImpl stmt = prepareStatement(sql); stmt.setColumnNames(columnNames); return stmt; } diff --git a/src/main/java/com/alibaba/druid/hbase/jdbc/HBaseResultSet.java b/src/main/java/com/alibaba/druid/hbase/jdbc/HBaseResultSet.java index 41705b1802..938a11f336 100644 --- a/src/main/java/com/alibaba/druid/hbase/jdbc/HBaseResultSet.java +++ b/src/main/java/com/alibaba/druid/hbase/jdbc/HBaseResultSet.java @@ -18,7 +18,7 @@ import com.alibaba.druid.util.JdbcUtils; public class HBaseResultSet extends ResultSetBase implements HResultSet { - private HStatementInterface statement; + private HStatement statement; private ResultScanner scanner; private HTableInterface htable; private Result result; @@ -26,7 +26,7 @@ public class HBaseResultSet extends ResultSetBase implements HResultSet { private HMapping mapping; - public HBaseResultSet(HStatementInterface statement, HTableInterface htable, ResultScanner scanner){ + public HBaseResultSet(HStatement statement, HTableInterface htable, ResultScanner scanner){ super(statement); this.statement = statement; this.htable = htable; diff --git a/src/main/java/com/alibaba/druid/hbase/jdbc/HPreparedStatement.java b/src/main/java/com/alibaba/druid/hbase/jdbc/HPreparedStatement.java index 2333ae6688..455eb37bde 100644 --- a/src/main/java/com/alibaba/druid/hbase/jdbc/HPreparedStatement.java +++ b/src/main/java/com/alibaba/druid/hbase/jdbc/HPreparedStatement.java @@ -1,165 +1,6 @@ package com.alibaba.druid.hbase.jdbc; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Types; -import java.util.List; -import com.alibaba.druid.common.jdbc.PreparedStatementBase; -import com.alibaba.druid.common.jdbc.ResultSetMetaDataBase.ColumnMetaData; -import com.alibaba.druid.hbase.exec.ExecutePlan; -import com.alibaba.druid.hbase.exec.InsertExecutePlan; -import com.alibaba.druid.hbase.exec.ShowTablesPlan; -import com.alibaba.druid.hbase.exec.SingleTableQueryExecutePlan; -import com.alibaba.druid.hbase.hbql.ast.HBQLShowStatement; -import com.alibaba.druid.sql.SQLUtils; -import com.alibaba.druid.sql.ast.SQLExpr; -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr; -import com.alibaba.druid.sql.ast.expr.SQLBinaryOperator; -import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; -import com.alibaba.druid.sql.ast.statement.SQLExprTableSource; -import com.alibaba.druid.sql.ast.statement.SQLInsertStatement; -import com.alibaba.druid.sql.ast.statement.SQLSelectItem; -import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock; -import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; -import com.alibaba.druid.sql.visitor.SQLEvalVisitor; -import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils; - -public class HPreparedStatement extends PreparedStatementBase implements PreparedStatement, HStatementInterface { - - private final String sql; - private String[] columnNames; - - private HBaseConnection hbaseConnection; - - private ExecutePlan executePlan; - - private String dbType = "hbase"; - - public HPreparedStatement(HBaseConnection conn, String sql) throws SQLException{ - super(conn); - this.sql = sql; - this.hbaseConnection = conn; - - init(); - } - - private void splitCondition(List conditions, SQLExpr expr) { - if (expr instanceof SQLBinaryOpExpr) { - SQLBinaryOpExpr binaryExpr = (SQLBinaryOpExpr) expr; - if (binaryExpr.getOperator() == SQLBinaryOperator.BooleanAnd) { - splitCondition(conditions, binaryExpr.getLeft()); - splitCondition(conditions, binaryExpr.getRight()); - return; - } - } - conditions.add(expr); - } - - public void init() throws SQLException { - List stmtList = SQLUtils.parseStatements(sql, dbType); - - if (stmtList.size() != 1) { - throw new SQLException("not support multi-statement"); - } - - SQLStatement sqlStmt = stmtList.get(0); - if (sqlStmt instanceof SQLSelectStatement) { - SQLSelectStatement selectStmt = (SQLSelectStatement) sqlStmt; - - SQLEvalVisitor evalVisitor = SQLEvalVisitorUtils.createEvalVisitor(dbType); - selectStmt.accept(evalVisitor); - - SQLSelectQueryBlock selectQueryBlock = (SQLSelectQueryBlock) selectStmt.getSelect().getQuery(); - - SQLExprTableSource tableSource = (SQLExprTableSource) selectQueryBlock.getFrom(); - String tableName = ((SQLIdentifierExpr) tableSource.getExpr()).getName(); - - SingleTableQueryExecutePlan singleTableQueryExecuetePlan = new SingleTableQueryExecutePlan(); - singleTableQueryExecuetePlan.setTableName(tableName); - - splitCondition(singleTableQueryExecuetePlan.getConditions(), selectQueryBlock.getWhere()); - - HResultSetMetaData resultMetaData = new HResultSetMetaData(); - for (SQLSelectItem selectItem : selectQueryBlock.getSelectList()) { - ColumnMetaData columnMetaData = new ColumnMetaData(); - if (selectItem.getAlias() != null) { - columnMetaData.setColumnLabel(selectItem.getAlias()); - } - columnMetaData.setColumnName(SQLUtils.toSQLString(selectItem.getExpr(), dbType)); - columnMetaData.setColumnType(Types.BINARY); - resultMetaData.getColumns().add(columnMetaData); - } - singleTableQueryExecuetePlan.setResultMetaData(resultMetaData); - - this.executePlan = singleTableQueryExecuetePlan; - } else if (sqlStmt instanceof SQLInsertStatement) { - SQLInsertStatement insertStmt = (SQLInsertStatement) sqlStmt; - - SQLEvalVisitor evalVisitor = SQLEvalVisitorUtils.createEvalVisitor(dbType); - insertStmt.accept(evalVisitor); - - String tableName = ((SQLIdentifierExpr) insertStmt.getTableSource().getExpr()).getName(); - - InsertExecutePlan insertExecutePlan = new InsertExecutePlan(); - insertExecutePlan.setTableName(tableName); - - for (int i = 0; i < insertStmt.getColumns().size(); ++i) { - SQLExpr columnExpr = insertStmt.getColumns().get(i); - SQLExpr valueExpr = insertStmt.getValues().getValues().get(i); - - String columnName = ((SQLIdentifierExpr) columnExpr).getName(); - insertExecutePlan.getColumns().put(columnName, valueExpr); - } - - this.executePlan = insertExecutePlan; - } else if (sqlStmt instanceof HBQLShowStatement) { - ShowTablesPlan showTablePlan = new ShowTablesPlan(); - this.executePlan = showTablePlan; - } else { - throw new SQLException("TODO"); - } - } - - public ExecutePlan getExecutePlan() { - return executePlan; - } - - public String[] getColumnNames() { - return columnNames; - } - - public void setColumnNames(String[] columnNames) { - this.columnNames = columnNames; - } - - public String getSql() { - return sql; - } - - @Override - public HBaseConnection getConnection() throws SQLException { - return hbaseConnection; - } - - @Override - public ResultSet executeQuery() throws SQLException { - return this.executePlan.executeQuery(this); - } - - @Override - public int executeUpdate() throws SQLException { - // TODO Auto-generated method stub - return 0; - } - - @Override - public boolean execute() throws SQLException { - this.executePlan.execute(this); - - return false; - } +public interface HPreparedStatement extends HStatement { } diff --git a/src/main/java/com/alibaba/druid/hbase/jdbc/HPreparedStatementImpl.java b/src/main/java/com/alibaba/druid/hbase/jdbc/HPreparedStatementImpl.java new file mode 100644 index 0000000000..e689f92001 --- /dev/null +++ b/src/main/java/com/alibaba/druid/hbase/jdbc/HPreparedStatementImpl.java @@ -0,0 +1,165 @@ +package com.alibaba.druid.hbase.jdbc; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; +import java.util.List; + +import com.alibaba.druid.common.jdbc.PreparedStatementBase; +import com.alibaba.druid.common.jdbc.ResultSetMetaDataBase.ColumnMetaData; +import com.alibaba.druid.hbase.exec.ExecutePlan; +import com.alibaba.druid.hbase.exec.InsertExecutePlan; +import com.alibaba.druid.hbase.exec.ShowTablesPlan; +import com.alibaba.druid.hbase.exec.SingleTableQueryExecutePlan; +import com.alibaba.druid.hbase.hbql.ast.HBQLShowStatement; +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.sql.ast.SQLExpr; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr; +import com.alibaba.druid.sql.ast.expr.SQLBinaryOperator; +import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; +import com.alibaba.druid.sql.ast.statement.SQLExprTableSource; +import com.alibaba.druid.sql.ast.statement.SQLInsertStatement; +import com.alibaba.druid.sql.ast.statement.SQLSelectItem; +import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock; +import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; +import com.alibaba.druid.sql.visitor.SQLEvalVisitor; +import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils; + +public class HPreparedStatementImpl extends PreparedStatementBase implements PreparedStatement, HStatement { + + private final String sql; + private String[] columnNames; + + private HBaseConnection hbaseConnection; + + private ExecutePlan executePlan; + + private String dbType = "hbase"; + + public HPreparedStatementImpl(HBaseConnection conn, String sql) throws SQLException{ + super(conn); + this.sql = sql; + this.hbaseConnection = conn; + + init(); + } + + private void splitCondition(List conditions, SQLExpr expr) { + if (expr instanceof SQLBinaryOpExpr) { + SQLBinaryOpExpr binaryExpr = (SQLBinaryOpExpr) expr; + if (binaryExpr.getOperator() == SQLBinaryOperator.BooleanAnd) { + splitCondition(conditions, binaryExpr.getLeft()); + splitCondition(conditions, binaryExpr.getRight()); + return; + } + } + conditions.add(expr); + } + + public void init() throws SQLException { + List stmtList = SQLUtils.parseStatements(sql, dbType); + + if (stmtList.size() != 1) { + throw new SQLException("not support multi-statement"); + } + + SQLStatement sqlStmt = stmtList.get(0); + if (sqlStmt instanceof SQLSelectStatement) { + SQLSelectStatement selectStmt = (SQLSelectStatement) sqlStmt; + + SQLEvalVisitor evalVisitor = SQLEvalVisitorUtils.createEvalVisitor(dbType); + selectStmt.accept(evalVisitor); + + SQLSelectQueryBlock selectQueryBlock = (SQLSelectQueryBlock) selectStmt.getSelect().getQuery(); + + SQLExprTableSource tableSource = (SQLExprTableSource) selectQueryBlock.getFrom(); + String tableName = ((SQLIdentifierExpr) tableSource.getExpr()).getName(); + + SingleTableQueryExecutePlan singleTableQueryExecuetePlan = new SingleTableQueryExecutePlan(); + singleTableQueryExecuetePlan.setTableName(tableName); + + splitCondition(singleTableQueryExecuetePlan.getConditions(), selectQueryBlock.getWhere()); + + HResultSetMetaData resultMetaData = new HResultSetMetaData(); + for (SQLSelectItem selectItem : selectQueryBlock.getSelectList()) { + ColumnMetaData columnMetaData = new ColumnMetaData(); + if (selectItem.getAlias() != null) { + columnMetaData.setColumnLabel(selectItem.getAlias()); + } + columnMetaData.setColumnName(SQLUtils.toSQLString(selectItem.getExpr(), dbType)); + columnMetaData.setColumnType(Types.BINARY); + resultMetaData.getColumns().add(columnMetaData); + } + singleTableQueryExecuetePlan.setResultMetaData(resultMetaData); + + this.executePlan = singleTableQueryExecuetePlan; + } else if (sqlStmt instanceof SQLInsertStatement) { + SQLInsertStatement insertStmt = (SQLInsertStatement) sqlStmt; + + SQLEvalVisitor evalVisitor = SQLEvalVisitorUtils.createEvalVisitor(dbType); + insertStmt.accept(evalVisitor); + + String tableName = ((SQLIdentifierExpr) insertStmt.getTableSource().getExpr()).getName(); + + InsertExecutePlan insertExecutePlan = new InsertExecutePlan(); + insertExecutePlan.setTableName(tableName); + + for (int i = 0; i < insertStmt.getColumns().size(); ++i) { + SQLExpr columnExpr = insertStmt.getColumns().get(i); + SQLExpr valueExpr = insertStmt.getValues().getValues().get(i); + + String columnName = ((SQLIdentifierExpr) columnExpr).getName(); + insertExecutePlan.getColumns().put(columnName, valueExpr); + } + + this.executePlan = insertExecutePlan; + } else if (sqlStmt instanceof HBQLShowStatement) { + ShowTablesPlan showTablePlan = new ShowTablesPlan(); + this.executePlan = showTablePlan; + } else { + throw new SQLException("TODO"); + } + } + + public ExecutePlan getExecutePlan() { + return executePlan; + } + + public String[] getColumnNames() { + return columnNames; + } + + public void setColumnNames(String[] columnNames) { + this.columnNames = columnNames; + } + + public String getSql() { + return sql; + } + + @Override + public HBaseConnection getConnection() throws SQLException { + return hbaseConnection; + } + + @Override + public ResultSet executeQuery() throws SQLException { + return this.executePlan.executeQuery(this); + } + + @Override + public int executeUpdate() throws SQLException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public boolean execute() throws SQLException { + this.executePlan.execute(this); + + return false; + } + +} diff --git a/src/main/java/com/alibaba/druid/hbase/jdbc/HStatement.java b/src/main/java/com/alibaba/druid/hbase/jdbc/HStatement.java index e75139b100..bee153b3be 100644 --- a/src/main/java/com/alibaba/druid/hbase/jdbc/HStatement.java +++ b/src/main/java/com/alibaba/druid/hbase/jdbc/HStatement.java @@ -3,23 +3,6 @@ package com.alibaba.druid.hbase.jdbc; import java.sql.SQLException; import java.sql.Statement; -import com.alibaba.druid.common.jdbc.StatementBase; - -public class HStatement extends StatementBase implements Statement, HStatementInterface { - - private HBaseConnection conn; - - public HStatement(HBaseConnection conn){ - super(conn); - this.conn = conn; - } - - @Override - public HBaseConnection getConnection() throws SQLException { - return conn; - } - - public void checkOpen() { - - } +public interface HStatement extends Statement { + HBaseConnection getConnection() throws SQLException; } diff --git a/src/main/java/com/alibaba/druid/hbase/jdbc/HStatementImpl.java b/src/main/java/com/alibaba/druid/hbase/jdbc/HStatementImpl.java new file mode 100644 index 0000000000..5da6614697 --- /dev/null +++ b/src/main/java/com/alibaba/druid/hbase/jdbc/HStatementImpl.java @@ -0,0 +1,25 @@ +package com.alibaba.druid.hbase.jdbc; + +import java.sql.SQLException; +import java.sql.Statement; + +import com.alibaba.druid.common.jdbc.StatementBase; + +public class HStatementImpl extends StatementBase implements Statement, HStatement { + + private HBaseConnection conn; + + public HStatementImpl(HBaseConnection conn){ + super(conn); + this.conn = conn; + } + + @Override + public HBaseConnection getConnection() throws SQLException { + return conn; + } + + public void checkOpen() { + + } +} diff --git a/src/main/java/com/alibaba/druid/hbase/jdbc/HStatementInterface.java b/src/main/java/com/alibaba/druid/hbase/jdbc/HStatementInterface.java deleted file mode 100644 index 0e783bdab8..0000000000 --- a/src/main/java/com/alibaba/druid/hbase/jdbc/HStatementInterface.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.alibaba.druid.hbase.jdbc; - -import java.sql.SQLException; -import java.sql.Statement; - -public interface HStatementInterface extends Statement { - HBaseConnection getConnection() throws SQLException; -}