diff --git a/src/main/java/com/alibaba/druid/util/JdbcUtils.java b/src/main/java/com/alibaba/druid/util/JdbcUtils.java index 0738d04093..d3b93ed990 100644 --- a/src/main/java/com/alibaba/druid/util/JdbcUtils.java +++ b/src/main/java/com/alibaba/druid/util/JdbcUtils.java @@ -488,12 +488,23 @@ public final class JdbcUtils { } public static Driver createDriver(String driverClassName) throws SQLException { + ClassNotFoundException exception = null; try { return (Driver) Class.forName(driverClassName).newInstance(); } catch (IllegalAccessException e) { throw new SQLException(e.getMessage(), e); } catch (InstantiationException e) { throw new SQLException(e.getMessage(), e); + } catch (ClassNotFoundException e) { + exception = e; + } + + try { + return (Driver) Thread.currentThread().getContextClassLoader().loadClass(driverClassName).newInstance(); + } catch (IllegalAccessException e) { + throw new SQLException(e.getMessage(), e); + } catch (InstantiationException e) { + throw new SQLException(e.getMessage(), e); } catch (ClassNotFoundException e) { throw new SQLException(e.getMessage(), e); }