git-svn-id: http://code.alibabatech.com/svn/druid/trunk@73 b9813039-fb51-4c41-a8b9-e21c2acb5095

This commit is contained in:
wenshao
2011-05-14 08:10:24 +00:00
parent 84d743206c
commit c96818767d
4 changed files with 59 additions and 6 deletions
@@ -27,12 +27,17 @@ import java.sql.SQLException;
import java.sql.SQLXML;
import java.util.Properties;
import com.alibaba.druid.mock.handler.MockExecuteHandler;
import com.alibaba.druid.mock.handler.MySqlMockExecuteHandlerImpl;
public class MockDriver implements Driver {
private String prefix = "jdbc:fake:";
private String mockPrefix = "jdbc:mock:";
private String prefix = "jdbc:fake:";
private String mockPrefix = "jdbc:mock:";
private final static MockDriver instance = new MockDriver();
private MockExecuteHandler executeHandler = new MySqlMockExecuteHandlerImpl();
private final static MockDriver instance = new MockDriver();
static {
registerDriver(instance);
@@ -50,6 +55,14 @@ public class MockDriver implements Driver {
return false;
}
public MockExecuteHandler getExecuteHandler() {
return executeHandler;
}
public void setExecuteHandler(MockExecuteHandler executeHandler) {
this.executeHandler = executeHandler;
}
@Override
public Connection connect(String url, Properties info) throws SQLException {
MockConnection conn = new MockConnection(this);
@@ -100,13 +113,17 @@ public class MockDriver implements Driver {
return true;
}
protected ResultSet createResultSet(MockStatement stmt, String sql) {
protected ResultSet executeQuery(MockStatement stmt, String sql) throws SQLException {
if (this.executeHandler != null) {
return this.executeHandler.executeQuery(stmt, sql);
}
MockResultSet rs = new MockResultSet(stmt);
if ("SELECT 1".equalsIgnoreCase(sql)) {
rs.getRows().add(new Object[] { 1 });
} else if ("SELECT NULL".equalsIgnoreCase(sql)) {
rs.getRows().add(new Object[] { null });
rs.getRows().add(new Object[] { null });
} else if ("SELECT NOW()".equalsIgnoreCase(sql)) {
rs.getRows().add(new Object[] { new java.sql.Timestamp(System.currentTimeMillis()) });
} else if ("SELECT value FROM _int_1000_".equalsIgnoreCase(sql)) {