完善mock driver

git-svn-id: http://code.alibabatech.com/svn/druid/trunk@390 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-07-12 23:55:31 +00:00
parent da81a2c4d5
commit 906b23b61a
2 changed files with 30 additions and 6 deletions
@@ -118,7 +118,12 @@ public class MockConnection implements Connection {
@Override
public void close() throws SQLException {
closed = true;
if (!closed) {
closed = true;
if (driver != null) {
driver.afterConnectionClose(this);
}
}
}
@Override
@@ -26,25 +26,41 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLXML;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicLong;
import com.alibaba.druid.mock.handler.MockExecuteHandler;
import com.alibaba.druid.mock.handler.MySqlMockExecuteHandlerImpl;
public class MockDriver implements Driver {
public final static MockExecuteHandler DEFAULT_HANDLER = new MySqlMockExecuteHandlerImpl();
public final static MockExecuteHandler DEFAULT_HANDLER = new MySqlMockExecuteHandlerImpl();
private String prefix = "jdbc:fake:";
private String mockPrefix = "jdbc:mock:";
private String prefix = "jdbc:fake:";
private String mockPrefix = "jdbc:mock:";
private MockExecuteHandler executeHandler = DEFAULT_HANDLER;
private MockExecuteHandler executeHandler = DEFAULT_HANDLER;
private final static MockDriver instance = new MockDriver();
private final static MockDriver instance = new MockDriver();
private final AtomicLong connectCount = new AtomicLong();
private final AtomicLong connectionCloseCount = new AtomicLong();
static {
registerDriver(instance);
}
protected void incrementConnectionCloseCount() {
connectionCloseCount.incrementAndGet();
}
public long getConnectionCloseCount() {
return connectionCloseCount.get();
}
protected void afterConnectionClose(MockConnection conn) {
connectionCloseCount.incrementAndGet();
}
public static boolean registerDriver(Driver driver) {
try {
DriverManager.registerDriver(driver);
@@ -74,6 +90,7 @@ public class MockDriver implements Driver {
MockConnection conn = new MockConnection(this);
if (url == null) {
connectCount.incrementAndGet();
return conn;
}
@@ -81,6 +98,7 @@ public class MockDriver implements Driver {
String catalog = url.substring(prefix.length());
conn.setCatalog(catalog);
connectCount.incrementAndGet();
return conn;
}
@@ -88,6 +106,7 @@ public class MockDriver implements Driver {
String catalog = url.substring(mockPrefix.length());
conn.setCatalog(catalog);
connectCount.incrementAndGet();
return conn;
}