下面列出了java.sql.DriverManager#deregisterDriver ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
protected static synchronized boolean destroyDriver() {
if (driver != null) {
driverRefCount--;
if (driverRefCount == 0) {
try {
try {
driver.close();
return true;
} finally {
try {
DriverManager.deregisterDriver(driver);
} finally {
driver = null;
}
}
} catch (SQLException e) {
}
}
}
return false;
}
/**
* 关闭所有连接,撤销驱动程序的注册
*/
public synchronized void release() {
// 等待直到最后一个客户程序调用
if (--clients != 0) {
return;
}
Enumeration allPools = pools.elements();
while (allPools.hasMoreElements()) {
ConnPool pool = (ConnPool) allPools.nextElement();
pool.release();
}
Enumeration allDrivers = drivers.elements();
while (allDrivers.hasMoreElements()) {
Driver driver = (Driver) allDrivers.nextElement();
try {
DriverManager.deregisterDriver(driver);
log("撤销JDBC驱动程序 " + driver.getClass().getName() + "的注册");
} catch (SQLException e) {
log(e, "无法撤销下列JDBC驱动程序的注册: " + driver.getClass().getName());
}
}
}
@Test
public void testClose() throws Exception {
Connection conn = createMock(Connection.class);
conn.setAutoCommit(true);
conn.close();
Driver driver = createMock(Driver.class);
String url = "jdbc:bar:baz";
expect(driver.acceptsURL(url)).andReturn(true);
expect(driver.connect(isA(String.class), isA(Properties.class))).andReturn(conn);
replay(driver, conn);
DriverManager.registerDriver(driver);
try {
JdbcConnectionSource sds = new JdbcConnectionSource(url, databaseType);
assertNotNull(sds.getReadOnlyConnection(null));
sds.close();
verify(driver, conn);
} finally {
DriverManager.deregisterDriver(driver);
}
}
protected void withNewConnection(WithConnection withConnection, Object... args)
throws Exception {
// deregisterDriver other jdbc drivers
Enumeration<Driver> drivers = DriverManager.getDrivers();
while (drivers.hasMoreElements()) {
DriverManager.deregisterDriver(drivers.nextElement());
}
DriverManager.registerDriver(new ClickHouseDriver());
String connectionStr = "jdbc:clickhouse://127.0.0.1:" + SERVER_PORT;
// first arg is use_client_time_zone
if (args.length > 0) {
if (args[0].equals(true)) {
connectionStr += "?use_client_time_zone=true";
}
}
Connection connection = DriverManager.getConnection(connectionStr);
try {
withConnection.apply(connection);
} finally {
connection.close();
}
}
@Override
public void onApplicationEvent(ContextClosedEvent event) {
LOG.info("[Drivers] About to de-register drivers...");
Enumeration<Driver> drivers = DriverManager.getDrivers();
while (drivers.hasMoreElements()) {
Driver driver = drivers.nextElement();
LOG.info("[Drivers] De-registering {}", driver);
try {
DriverManager.deregisterDriver(driver);
} catch (SQLException e) {
LOG.error("Failed to deregister driver: {}", driver.getClass());
}
}
LOG.info("[Drivers] De-registered drivers.");
}
/**
* Register a driver and make sure you find it via its URL. Deregister the
* driver and validate it is not longer registered
*
* @throws Exception
*/
@Test()
public void test15() throws Exception {
DriverManager.registerDriver(new StubDriver());
Driver d = DriverManager.getDriver(StubDriverURL);
assertTrue(d != null);
assertTrue(isDriverRegistered(d));
DriverManager.deregisterDriver(d);
assertFalse(isDriverRegistered(d));
}
public static void deregisterDriver(final String jdbcDriverClasspath, final String jdbcDriverClassname)
throws Exception {
Driver registeredDriver = registeredDrivers.get(jdbcDriverClasspath + ":" + jdbcDriverClassname); //$NON-NLS-1$
if (null != registeredDriver) {
DriverManager.deregisterDriver(registeredDriver);
}
}
@Before
public void init() throws SQLException {
Enumeration<Driver> drivers = DriverManager.getDrivers();
while (drivers.hasMoreElements()) {
DriverManager.deregisterDriver(drivers.nextElement());
}
DriverManager.registerDriver(new ClickHouseDriver());
}
public static void replaceSparkHiveDriver() throws Exception {
Enumeration<Driver> drivers = DriverManager.getDrivers();
while(drivers.hasMoreElements()) {
Driver driver = drivers.nextElement();
String driverName = driver.getClass().getName();
LOG.debug("Found a registered JDBC driver {}", driverName);
if(driverName.endsWith("HiveDriver")) {
LOG.debug("Deregistering {}", driverName);
DriverManager.deregisterDriver(driver);
} else {
LOG.debug("Not deregistering the {}", driverName);
}
}
DriverManager.registerDriver((Driver) Class.forName("shadehive.org.apache.hive.jdbc.HiveDriver").newInstance());
}
@Override
public void destroy() {
// clean up registered drivers to prevent messages like
// The web application [/olat] registered the JBDC driver [org.hsqldb.jdbc.JDBCDriver] but failed to unregister...
final Enumeration<Driver> registeredDrivers = DriverManager.getDrivers();
while (registeredDrivers.hasMoreElements()) {
try {
DriverManager.deregisterDriver(registeredDrivers.nextElement());
} catch (final SQLException e) {
log.error("Could not unregister database driver.", e);
}
}
}
/**
* Validate that DriverAction.release is called when a driver is registered
* via registerDriver(Driver, DriverAction)
*
* @throws Exception
*/
@Test
public void test16() throws Exception {
File file = new File(util.StubDriverDA.DriverActionCalled);
file.delete();
assertFalse(file.exists());
Driver d = null;
Class.forName("util.StubDriverDA");
d = DriverManager.getDriver(StubDriverDAURL);
DriverManager.deregisterDriver(d);
assertFalse(isDriverRegistered(d), "Driver is registered");
assertTrue(file.exists());
}
/*** Connection and Driver Methods ***/
private void stopServer() throws SQLException, Exception {
try {
if (this.jdbcConn != null) {
this.jdbcConn.close();
}
DriverManager.deregisterDriver(driver);
final FabricService fs = FabricServiceManager.getFabricServerInstance();
if (fs != null) {
fs.stop(new Properties());
}
final GemFireCacheImpl cache = GemFireCacheImpl.getInstance();
DistributedSystem ds = null;
if (cache != null) {
ds = cache.getDistributedSystem();
if (ds != null) {
ds.disconnect();
}
}
} catch (Exception e) {
logSevere("Unable to stop the server ", e , reportableErrors);
}
GFXDDiskStoreImpl.cleanUpOffline();
}
/**
* Validate that a null value allows for deRegisterDriver to return
*/
@Test
public void test3() throws Exception {
DriverManager.deregisterDriver(null);
}
@Test
public void test9() throws SQLException {
setPolicy(new TestPolicy("all"));
DriverManager.deregisterDriver(new StubDriver());
}
@Test(expectedExceptions = AccessControlException.class)
public void test7() throws SQLException {
setPolicy(new TestPolicy());
DriverManager.deregisterDriver(new StubDriver());
}
@Test
public void test9() throws SQLException {
setPolicy(new TestPolicy("all"));
DriverManager.deregisterDriver(new StubDriver());
}
/**
* Validate that a null value allows for deRegisterDriver to return
*/
@Test
public void test3() throws Exception {
DriverManager.deregisterDriver(null);
}
@Test
public void test9() throws SQLException {
setPolicy(new TestPolicy("all"));
DriverManager.deregisterDriver(new StubDriver());
}
@Test(expectedExceptions = AccessControlException.class)
public void test7() throws SQLException {
setPolicy(new TestPolicy());
DriverManager.deregisterDriver(new StubDriver());
}
/**
* Validate that a null value allows for deRegisterDriver to return
*/
@Test
public void test3() throws Exception {
DriverManager.deregisterDriver(null);
}