From b2d558cf1935f0fe25ba4d1e4e19ffe6b244431d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Fri, 18 May 2012 21:24:13 +0800 Subject: [PATCH] hbase support --- .../common/jdbc/PreparedStatementBase.java | 310 +++++++++++++++++ .../druid/common/jdbc/StatementBase.java | 273 +++++++++++++++ .../druid/hbase/HBasePreparedStatement.java | 295 +--------------- .../alibaba/druid/hbase/HBaseStatement.java | 111 +----- .../druid/mock/MockCallableStatement.java | 3 +- .../druid/mock/MockPreparedStatement.java | 327 +----------------- .../com/alibaba/druid/mock/MockStatement.java | 245 ------------- 7 files changed, 611 insertions(+), 953 deletions(-) create mode 100644 src/main/java/com/alibaba/druid/common/jdbc/PreparedStatementBase.java diff --git a/src/main/java/com/alibaba/druid/common/jdbc/PreparedStatementBase.java b/src/main/java/com/alibaba/druid/common/jdbc/PreparedStatementBase.java new file mode 100644 index 0000000000..5dc843628a --- /dev/null +++ b/src/main/java/com/alibaba/druid/common/jdbc/PreparedStatementBase.java @@ -0,0 +1,310 @@ +package com.alibaba.druid.common.jdbc; + +import java.io.InputStream; +import java.io.Reader; +import java.math.BigDecimal; +import java.net.URL; +import java.sql.Array; +import java.sql.Blob; +import java.sql.Clob; +import java.sql.Connection; +import java.sql.Date; +import java.sql.NClob; +import java.sql.ParameterMetaData; +import java.sql.PreparedStatement; +import java.sql.Ref; +import java.sql.ResultSetMetaData; +import java.sql.RowId; +import java.sql.SQLException; +import java.sql.SQLXML; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import com.alibaba.druid.mock.MockParameterMetaData; +import com.alibaba.druid.mock.MockResultSetMetaData; + +public abstract class PreparedStatementBase extends StatementBase implements PreparedStatement { + + private List parameters = new ArrayList(); + + private MockParameterMetaData metadata = new MockParameterMetaData(); + + private MockResultSetMetaData resultSetMetaData = new MockResultSetMetaData(); + + public PreparedStatementBase(Connection connection){ + super(connection); + } + + public List getParameters() { + return parameters; + } + + @Override + public void setNull(int parameterIndex, int sqlType) throws SQLException { + parameters.add(parameterIndex - 1, null); + } + + @Override + public void setBoolean(int parameterIndex, boolean x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setByte(int parameterIndex, byte x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setShort(int parameterIndex, short x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setInt(int parameterIndex, int x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setLong(int parameterIndex, long x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setFloat(int parameterIndex, float x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setDouble(int parameterIndex, double x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setString(int parameterIndex, String x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setBytes(int parameterIndex, byte[] x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setDate(int parameterIndex, Date x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setTime(int parameterIndex, Time x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void clearParameters() throws SQLException { + checkOpen(); + + parameters.clear(); + } + + @Override + public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setObject(int parameterIndex, Object x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void addBatch() throws SQLException { + checkOpen(); + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException { + parameters.add(parameterIndex - 1, reader); + } + + @Override + public void setRef(int parameterIndex, Ref x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setBlob(int parameterIndex, Blob x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setClob(int parameterIndex, Clob x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setArray(int parameterIndex, Array x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public ResultSetMetaData getMetaData() throws SQLException { + checkOpen(); + + return resultSetMetaData; + } + + @Override + public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException { + parameters.add(parameterIndex - 1, null); + } + + @Override + public void setURL(int parameterIndex, URL x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public ParameterMetaData getParameterMetaData() throws SQLException { + checkOpen(); + return metadata; + } + + @Override + public void setRowId(int parameterIndex, RowId x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setNString(int parameterIndex, String value) throws SQLException { + parameters.add(parameterIndex - 1, value); + } + + @Override + public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException { + parameters.add(parameterIndex - 1, value); + } + + @Override + public void setNClob(int parameterIndex, NClob value) throws SQLException { + parameters.add(parameterIndex - 1, value); + } + + @Override + public void setClob(int parameterIndex, Reader value, long length) throws SQLException { + parameters.add(parameterIndex - 1, value); + } + + @Override + public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException { + parameters.add(parameterIndex - 1, inputStream); + } + + @Override + public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException { + parameters.add(parameterIndex - 1, reader); + } + + @Override + public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException { + parameters.add(parameterIndex - 1, xmlObject); + } + + @Override + public void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException { + parameters.add(parameterIndex - 1, reader); + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException { + parameters.add(parameterIndex - 1, x); + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException { + parameters.add(parameterIndex - 1, reader); + } + + @Override + public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException { + parameters.add(parameterIndex - 1, value); + } + + @Override + public void setClob(int parameterIndex, Reader reader) throws SQLException { + parameters.add(parameterIndex - 1, reader); + } + + @Override + public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException { + parameters.add(parameterIndex - 1, inputStream); + } + + @Override + public void setNClob(int parameterIndex, Reader reader) throws SQLException { + parameters.add(parameterIndex - 1, reader); + } + +} diff --git a/src/main/java/com/alibaba/druid/common/jdbc/StatementBase.java b/src/main/java/com/alibaba/druid/common/jdbc/StatementBase.java index 94042fa4c0..351e7ca8f1 100644 --- a/src/main/java/com/alibaba/druid/common/jdbc/StatementBase.java +++ b/src/main/java/com/alibaba/druid/common/jdbc/StatementBase.java @@ -1,7 +1,10 @@ package com.alibaba.druid.common.jdbc; import java.sql.Connection; +import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.sql.SQLWarning; import java.sql.Statement; public abstract class StatementBase implements Statement { @@ -12,6 +15,18 @@ public abstract class StatementBase implements Statement { private int resultSetType; private int resultSetConcurrency; private int resultSetHoldability; + private int maxFieldSize; + private int maxRows; + private int queryTimeout; + private boolean escapeProcessing; + private String cursorName; + private SQLWarning warnings; + private int updateCount; + protected boolean closed = false; + private boolean poolable; + + private ResultSet generatedKeys; + private ResultSet resultSet; public StatementBase(Connection connection){ super(); @@ -84,4 +99,262 @@ public abstract class StatementBase implements Statement { public void setResultSetHoldability(int resultSetHoldability) { this.resultSetHoldability = resultSetHoldability; } + + @Override + public int getMaxFieldSize() throws SQLException { + checkOpen(); + + return maxFieldSize; + } + + @Override + public void setMaxFieldSize(int max) throws SQLException { + checkOpen(); + + this.maxFieldSize = max; + } + + @Override + public int getMaxRows() throws SQLException { + checkOpen(); + + return maxRows; + } + + @Override + public void setMaxRows(int max) throws SQLException { + checkOpen(); + + this.maxRows = max; + } + + @Override + public void setEscapeProcessing(boolean enable) throws SQLException { + checkOpen(); + this.escapeProcessing = enable; + } + + public boolean isEscapeProcessing() { + return escapeProcessing; + } + + @Override + public int getQueryTimeout() throws SQLException { + checkOpen(); + return queryTimeout; + } + + @Override + public void setQueryTimeout(int seconds) throws SQLException { + checkOpen(); + this.queryTimeout = seconds; + } + + @Override + public void setCursorName(String name) throws SQLException { + checkOpen(); + + cursorName = name; + } + + public String getCursorName() { + return cursorName; + } + + @Override + public SQLWarning getWarnings() throws SQLException { + checkOpen(); + + return warnings; + } + + @Override + public void clearWarnings() throws SQLException { + checkOpen(); + + warnings = null; + } + + public void setWarning(SQLWarning warning) { + this.warnings = warning; + } + + @Override + public int getUpdateCount() throws SQLException { + checkOpen(); + + return updateCount; + } + + public void setUpdateCount(int updateCount) { + this.updateCount = updateCount; + } + + @Override + public void close() throws SQLException { + this.closed = true; + } + + @SuppressWarnings("unchecked") + @Override + public T unwrap(Class iface) throws SQLException { + if (iface == null) { + return null; + } + + if (iface.isInstance(this)) { + return (T) this; + } + + return null; + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + if (iface == null) { + return false; + } + + if (iface.isInstance(this)) { + return true; + } + + return false; + } + + public boolean isPoolable() throws SQLException { + checkOpen(); + return poolable; + } + + public void setPoolable(boolean poolable) throws SQLException { + checkOpen(); + this.poolable = poolable; + } + + public void closeOnCompletion() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + public boolean isCloseOnCompletion() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isClosed() throws SQLException { + return closed; + } + + @Override + public boolean getMoreResults() throws SQLException { + checkOpen(); + + return false; + } + + @Override + public void addBatch(String sql) throws SQLException { + checkOpen(); + } + + @Override + public void clearBatch() throws SQLException { + checkOpen(); + } + + @Override + public ResultSet getGeneratedKeys() throws SQLException { + checkOpen(); + return this.generatedKeys; + } + + public void setGeneratedKeys(ResultSet generatedKeys) { + this.generatedKeys = generatedKeys; + } + + @Override + public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { + checkOpen(); + return 0; + } + + @Override + public int executeUpdate(String sql, int[] columnIndexes) throws SQLException { + checkOpen(); + return 0; + } + + @Override + public int executeUpdate(String sql, String[] columnNames) throws SQLException { + checkOpen(); + return 0; + } + + @Override + public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { + checkOpen(); + return false; + } + + @Override + public boolean execute(String sql, int[] columnIndexes) throws SQLException { + checkOpen(); + return false; + } + + @Override + public boolean execute(String sql, String[] columnNames) throws SQLException { + checkOpen(); + return false; + } + + @Override + public ResultSet getResultSet() throws SQLException { + checkOpen(); + + return resultSet; + } + + @Override + public int[] executeBatch() throws SQLException { + checkOpen(); + + return new int[0]; + } + + @Override + public boolean getMoreResults(int current) throws SQLException { + checkOpen(); + return false; + } + + public void setWarnings(SQLWarning warnings) { + this.warnings = warnings; + } + + public void setResultSet(ResultSet resultSet) { + this.resultSet = resultSet; + } + + @Override + public boolean execute(String sql) throws SQLException { + checkOpen(); + + return false; + } + + @Override + public ResultSet executeQuery(String sql) throws SQLException { + return null; + } + + @Override + public int executeUpdate(String sql) throws SQLException { + return 0; + } + + @Override + public void cancel() throws SQLException { + checkOpen(); + } } diff --git a/src/main/java/com/alibaba/druid/hbase/HBasePreparedStatement.java b/src/main/java/com/alibaba/druid/hbase/HBasePreparedStatement.java index 116f4c03b7..b8439d596f 100644 --- a/src/main/java/com/alibaba/druid/hbase/HBasePreparedStatement.java +++ b/src/main/java/com/alibaba/druid/hbase/HBasePreparedStatement.java @@ -1,307 +1,17 @@ package com.alibaba.druid.hbase; -import java.io.InputStream; -import java.io.Reader; -import java.math.BigDecimal; -import java.net.URL; -import java.sql.Array; -import java.sql.Blob; -import java.sql.Clob; -import java.sql.Date; -import java.sql.NClob; -import java.sql.ParameterMetaData; import java.sql.PreparedStatement; -import java.sql.Ref; import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.RowId; import java.sql.SQLException; -import java.sql.SQLXML; -import java.sql.Time; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -import com.alibaba.druid.mock.MockParameterMetaData; -import com.alibaba.druid.mock.MockResultSetMetaData; +import com.alibaba.druid.common.jdbc.PreparedStatementBase; -public class HBasePreparedStatement extends HBaseStatement implements PreparedStatement { - - private final List parameters = new ArrayList(); - private MockParameterMetaData metadata = new MockParameterMetaData(); - - private MockResultSetMetaData resultSetMetaData = new MockResultSetMetaData(); +public class HBasePreparedStatement extends PreparedStatementBase implements PreparedStatement { public HBasePreparedStatement(HBaseConnection conn){ super(conn); } - @Override - public void setNull(int parameterIndex, int sqlType) throws SQLException { - parameters.add(parameterIndex - 1, null); - } - - @Override - public void setBoolean(int parameterIndex, boolean x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setByte(int parameterIndex, byte x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setShort(int parameterIndex, short x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setInt(int parameterIndex, int x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setLong(int parameterIndex, long x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setFloat(int parameterIndex, float x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setDouble(int parameterIndex, double x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setString(int parameterIndex, String x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBytes(int parameterIndex, byte[] x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setDate(int parameterIndex, Date x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setTime(int parameterIndex, Time x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void clearParameters() throws SQLException { - checkOpen(); - - parameters.clear(); - } - - @Override - public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setObject(int parameterIndex, Object x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void addBatch() throws SQLException { - checkOpen(); - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setRef(int parameterIndex, Ref x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBlob(int parameterIndex, Blob x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setClob(int parameterIndex, Clob x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setArray(int parameterIndex, Array x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public ResultSetMetaData getMetaData() throws SQLException { - checkOpen(); - - return resultSetMetaData; - } - - @Override - public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException { - parameters.add(parameterIndex - 1, null); - } - - @Override - public void setURL(int parameterIndex, URL x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public ParameterMetaData getParameterMetaData() throws SQLException { - checkOpen(); - return metadata; - } - - @Override - public void setRowId(int parameterIndex, RowId x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setNString(int parameterIndex, String value) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setNClob(int parameterIndex, NClob value) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setClob(int parameterIndex, Reader value, long length) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException { - parameters.add(parameterIndex - 1, inputStream); - } - - @Override - public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException { - parameters.add(parameterIndex - 1, xmlObject); - } - - @Override - public void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setClob(int parameterIndex, Reader reader) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException { - parameters.add(parameterIndex - 1, inputStream); - } - - @Override - public void setNClob(int parameterIndex, Reader reader) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - @Override public ResultSet executeQuery() throws SQLException { // TODO Auto-generated method stub @@ -320,4 +30,5 @@ public class HBasePreparedStatement extends HBaseStatement implements PreparedSt return false; } + } diff --git a/src/main/java/com/alibaba/druid/hbase/HBaseStatement.java b/src/main/java/com/alibaba/druid/hbase/HBaseStatement.java index d3e59c50a3..1286070160 100644 --- a/src/main/java/com/alibaba/druid/hbase/HBaseStatement.java +++ b/src/main/java/com/alibaba/druid/hbase/HBaseStatement.java @@ -3,15 +3,16 @@ package com.alibaba.druid.hbase; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.SQLWarning; import java.sql.Statement; -public class HBaseStatement implements Statement { +import com.alibaba.druid.common.jdbc.StatementBase; + +public class HBaseStatement extends StatementBase implements Statement { private HBaseConnection conn; public HBaseStatement(HBaseConnection conn){ - super(); + super(conn); this.conn = conn; } @@ -45,69 +46,8 @@ public class HBaseStatement implements Statement { } - @Override - public int getMaxFieldSize() throws SQLException { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void setMaxFieldSize(int max) throws SQLException { - // TODO Auto-generated method stub - - } - - @Override - public int getMaxRows() throws SQLException { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void setMaxRows(int max) throws SQLException { - // TODO Auto-generated method stub - - } - - @Override - public void setEscapeProcessing(boolean enable) throws SQLException { - // TODO Auto-generated method stub - - } - - @Override - public int getQueryTimeout() throws SQLException { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void setQueryTimeout(int seconds) throws SQLException { - // TODO Auto-generated method stub - - } - @Override public void cancel() throws SQLException { - // TODO Auto-generated method stub - - } - - @Override - public SQLWarning getWarnings() throws SQLException { - // TODO Auto-generated method stub - return null; - } - - @Override - public void clearWarnings() throws SQLException { - // TODO Auto-generated method stub - - } - - @Override - public void setCursorName(String name) throws SQLException { - // TODO Auto-generated method stub } @@ -135,42 +75,6 @@ public class HBaseStatement implements Statement { return false; } - @Override - public void setFetchDirection(int direction) throws SQLException { - // TODO Auto-generated method stub - - } - - @Override - public int getFetchDirection() throws SQLException { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void setFetchSize(int rows) throws SQLException { - // TODO Auto-generated method stub - - } - - @Override - public int getFetchSize() throws SQLException { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int getResultSetConcurrency() throws SQLException { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int getResultSetType() throws SQLException { - // TODO Auto-generated method stub - return 0; - } - @Override public void addBatch(String sql) throws SQLException { // TODO Auto-generated method stub @@ -242,11 +146,6 @@ public class HBaseStatement implements Statement { return false; } - @Override - public int getResultSetHoldability() throws SQLException { - // TODO Auto-generated method stub - return 0; - } @Override public boolean isClosed() throws SQLException { @@ -267,6 +166,6 @@ public class HBaseStatement implements Statement { } public void checkOpen() { - + } } diff --git a/src/main/java/com/alibaba/druid/mock/MockCallableStatement.java b/src/main/java/com/alibaba/druid/mock/MockCallableStatement.java index 1e0d3fef50..b52e8b1da8 100644 --- a/src/main/java/com/alibaba/druid/mock/MockCallableStatement.java +++ b/src/main/java/com/alibaba/druid/mock/MockCallableStatement.java @@ -23,7 +23,6 @@ import java.sql.Array; import java.sql.Blob; import java.sql.CallableStatement; import java.sql.Clob; -import java.sql.Connection; import java.sql.Date; import java.sql.NClob; import java.sql.Ref; @@ -43,7 +42,7 @@ public class MockCallableStatement extends MockPreparedStatement implements Call private final List parameters = new ArrayList(); private boolean wasNull = false; - public MockCallableStatement(Connection conn, String sql){ + public MockCallableStatement(MockConnection conn, String sql){ super(conn, sql); } diff --git a/src/main/java/com/alibaba/druid/mock/MockPreparedStatement.java b/src/main/java/com/alibaba/druid/mock/MockPreparedStatement.java index 2fef322084..4464115ac7 100644 --- a/src/main/java/com/alibaba/druid/mock/MockPreparedStatement.java +++ b/src/main/java/com/alibaba/druid/mock/MockPreparedStatement.java @@ -15,41 +15,17 @@ */ package com.alibaba.druid.mock; -import java.io.InputStream; -import java.io.Reader; -import java.math.BigDecimal; -import java.net.URL; -import java.sql.Array; -import java.sql.Blob; -import java.sql.Clob; -import java.sql.Connection; -import java.sql.Date; -import java.sql.NClob; -import java.sql.ParameterMetaData; import java.sql.PreparedStatement; -import java.sql.Ref; import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.RowId; import java.sql.SQLException; -import java.sql.SQLXML; -import java.sql.Time; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; -public class MockPreparedStatement extends MockStatement implements PreparedStatement { +import com.alibaba.druid.common.jdbc.PreparedStatementBase; - private final String sql; +public class MockPreparedStatement extends PreparedStatementBase implements PreparedStatement { - private final List parameters = new ArrayList(); + private final String sql; - private MockParameterMetaData metadata = new MockParameterMetaData(); - - private MockResultSetMetaData resultSetMetaData = new MockResultSetMetaData(); - - public MockPreparedStatement(Connection conn, String sql){ + public MockPreparedStatement(MockConnection conn, String sql){ super(conn); this.sql = sql; } @@ -58,310 +34,45 @@ public class MockPreparedStatement extends MockStatement implements PreparedStat return sql; } + public MockConnection getConnection() throws SQLException { + return (MockConnection) super.getConnection(); + } + @Override public ResultSet executeQuery() throws SQLException { checkOpen(); - if (mockConnection != null && mockConnection.getDriver() != null) { - return mockConnection.getDriver().createResultSet(this); + if (getConnection() != null && getConnection().getDriver() != null) { + return getConnection().getDriver().createResultSet(this); } - - if (mockConnection != null) { - mockConnection.handleSleep(); + + if (getConnection() != null) { + getConnection().handleSleep(); } return new MockResultSet(this); } - public List getParameters() { - return parameters; - } - @Override public int executeUpdate() throws SQLException { checkOpen(); - - if (mockConnection != null) { - mockConnection.handleSleep(); + + if (getConnection() != null) { + getConnection().handleSleep(); } return 0; } - @Override - public void setNull(int parameterIndex, int sqlType) throws SQLException { - parameters.add(parameterIndex - 1, null); - } - - @Override - public void setBoolean(int parameterIndex, boolean x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setByte(int parameterIndex, byte x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setShort(int parameterIndex, short x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setInt(int parameterIndex, int x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setLong(int parameterIndex, long x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setFloat(int parameterIndex, float x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setDouble(int parameterIndex, double x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setString(int parameterIndex, String x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBytes(int parameterIndex, byte[] x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setDate(int parameterIndex, Date x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setTime(int parameterIndex, Time x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void clearParameters() throws SQLException { - checkOpen(); - - parameters.clear(); - } - - @Override - public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setObject(int parameterIndex, Object x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - @Override public boolean execute() throws SQLException { checkOpen(); - - if (mockConnection != null) { - mockConnection.handleSleep(); + + if (getConnection() != null) { + getConnection().handleSleep(); } return false; } - @Override - public void addBatch() throws SQLException { - checkOpen(); - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setRef(int parameterIndex, Ref x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBlob(int parameterIndex, Blob x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setClob(int parameterIndex, Clob x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setArray(int parameterIndex, Array x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public ResultSetMetaData getMetaData() throws SQLException { - checkOpen(); - - return resultSetMetaData; - } - - @Override - public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException { - parameters.add(parameterIndex - 1, null); - } - - @Override - public void setURL(int parameterIndex, URL x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public ParameterMetaData getParameterMetaData() throws SQLException { - checkOpen(); - return metadata; - } - - @Override - public void setRowId(int parameterIndex, RowId x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setNString(int parameterIndex, String value) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setNClob(int parameterIndex, NClob value) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setClob(int parameterIndex, Reader value, long length) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException { - parameters.add(parameterIndex - 1, inputStream); - } - - @Override - public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException { - parameters.add(parameterIndex - 1, xmlObject); - } - - @Override - public void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException { - parameters.add(parameterIndex - 1, x); - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException { - parameters.add(parameterIndex - 1, value); - } - - @Override - public void setClob(int parameterIndex, Reader reader) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - - @Override - public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException { - parameters.add(parameterIndex - 1, inputStream); - } - - @Override - public void setNClob(int parameterIndex, Reader reader) throws SQLException { - parameters.add(parameterIndex - 1, reader); - } - } diff --git a/src/main/java/com/alibaba/druid/mock/MockStatement.java b/src/main/java/com/alibaba/druid/mock/MockStatement.java index 5afde063aa..d1a5b2a209 100644 --- a/src/main/java/com/alibaba/druid/mock/MockStatement.java +++ b/src/main/java/com/alibaba/druid/mock/MockStatement.java @@ -18,8 +18,6 @@ package com.alibaba.druid.mock; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.SQLFeatureNotSupportedException; -import java.sql.SQLWarning; import java.sql.Statement; import com.alibaba.druid.common.jdbc.StatementBase; @@ -28,16 +26,7 @@ public class MockStatement extends StatementBase implements Statement { public final static String ERROR_SQL = "THROW ERROR"; - protected boolean closed = false; - protected MockConnection mockConnection; - private int maxFieldSize; - private int maxRows; - private int queryTimeout; - private boolean escapeProcessing; - private SQLWarning warnings; - private String cursorName; - private int updateCount; public MockStatement(Connection connection){ super(connection); @@ -66,33 +55,6 @@ public class MockStatement extends StatementBase implements Statement { this.setConnection(fakeConnection); } - @SuppressWarnings("unchecked") - @Override - public T unwrap(Class iface) throws SQLException { - if (iface == null) { - return null; - } - - if (iface.isInstance(this)) { - return (T) this; - } - - return null; - } - - @Override - public boolean isWrapperFor(Class iface) throws SQLException { - if (iface == null) { - return false; - } - - if (iface.isInstance(this)) { - return true; - } - - return false; - } - @Override public ResultSet executeQuery(String sql) throws SQLException { checkOpen(); @@ -115,95 +77,6 @@ public class MockStatement extends StatementBase implements Statement { return 0; } - @Override - public void close() throws SQLException { - this.closed = true; - } - - @Override - public int getMaxFieldSize() throws SQLException { - checkOpen(); - - return maxFieldSize; - } - - @Override - public void setMaxFieldSize(int max) throws SQLException { - checkOpen(); - - this.maxFieldSize = max; - } - - @Override - public int getMaxRows() throws SQLException { - checkOpen(); - - return maxRows; - } - - @Override - public void setMaxRows(int max) throws SQLException { - checkOpen(); - - this.maxRows = max; - } - - @Override - public void setEscapeProcessing(boolean enable) throws SQLException { - checkOpen(); - this.escapeProcessing = enable; - } - - public boolean isEscapeProcessing() { - return escapeProcessing; - } - - @Override - public int getQueryTimeout() throws SQLException { - checkOpen(); - return queryTimeout; - } - - @Override - public void setQueryTimeout(int seconds) throws SQLException { - checkOpen(); - this.queryTimeout = seconds; - } - - @Override - public void cancel() throws SQLException { - checkOpen(); - } - - @Override - public SQLWarning getWarnings() throws SQLException { - checkOpen(); - - return warnings; - } - - @Override - public void clearWarnings() throws SQLException { - checkOpen(); - - warnings = null; - } - - public void setWarning(SQLWarning warning) { - this.warnings = warning; - } - - @Override - public void setCursorName(String name) throws SQLException { - checkOpen(); - - cursorName = name; - } - - public String getCursorName() { - return cursorName; - } - @Override public boolean execute(String sql) throws SQLException { checkOpen(); @@ -219,122 +92,4 @@ public class MockStatement extends StatementBase implements Statement { return false; } - @Override - public ResultSet getResultSet() throws SQLException { - checkOpen(); - - return new MockResultSet(this); - } - - @Override - public int getUpdateCount() throws SQLException { - checkOpen(); - - return updateCount; - } - - public void setUpdateCount(int updateCount) { - this.updateCount = updateCount; - } - - @Override - public boolean getMoreResults() throws SQLException { - checkOpen(); - - return false; - } - - @Override - public void addBatch(String sql) throws SQLException { - checkOpen(); - } - - @Override - public void clearBatch() throws SQLException { - checkOpen(); - } - - @Override - public int[] executeBatch() throws SQLException { - checkOpen(); - - if (mockConnection != null) { - mockConnection.handleSleep(); - } - - return new int[0]; - } - - @Override - public boolean getMoreResults(int current) throws SQLException { - checkOpen(); - return false; - } - - @Override - public ResultSet getGeneratedKeys() throws SQLException { - checkOpen(); - return new MockResultSet(this); - } - - @Override - public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { - checkOpen(); - return 0; - } - - @Override - public int executeUpdate(String sql, int[] columnIndexes) throws SQLException { - checkOpen(); - return 0; - } - - @Override - public int executeUpdate(String sql, String[] columnNames) throws SQLException { - checkOpen(); - return 0; - } - - @Override - public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { - checkOpen(); - return false; - } - - @Override - public boolean execute(String sql, int[] columnIndexes) throws SQLException { - checkOpen(); - return false; - } - - @Override - public boolean execute(String sql, String[] columnNames) throws SQLException { - checkOpen(); - return false; - } - - @Override - public boolean isClosed() throws SQLException { - return closed; - } - - @Override - public void setPoolable(boolean poolable) throws SQLException { - checkOpen(); - } - - @Override - public boolean isPoolable() throws SQLException { - checkOpen(); - return false; - } - - public void closeOnCompletion() throws SQLException { - throw new SQLFeatureNotSupportedException(); - } - - public boolean isCloseOnCompletion() throws SQLException { - throw new SQLFeatureNotSupportedException(); - } - }