DriverManagerDataSource 和 SimpleDriverDataSource 的区别
Difference between DriverManagerDataSource and SimpleDriverDataSource
在 Spring 中,使用 DriverManagerDataSource 和 SimpleDriverDataSource 在给定 driverClassName 的情况下创建新数据源有什么区别, url,用户名和密码?
例如,对于 DriverManagerDataSource,您可以执行以下操作:
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
使用 SimpleDriverDataSource 时,您可以:
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
Class<? extends Driver> driver = (Class<? extends Driver>) Class.forName(driverClassName);
dataSource.setDriverClass(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
从描述的角度来看,差别不大。主要区别是概念上的,并在 OSGi 环境中发挥作用——引用 DriverManagerDataSource javadoc:
Within special class loading environments
such as OSGi, this class is effectively superseded by
SimpleDriverDataSource due to general class loading issues with the
JDBC DriverManager that be resolved through direct Driver usage (which
is exactly what SimpleDriverDataSource does).
DriverManagerDataSource — 标准 JDBC DataSource 接口的简单实现,通过 bean 属性配置普通的旧 JDBC DriverManager,并返回一个新的连接每次 getConnection 调用。
SimpleDriverDataSource — 与 DriverManagerDataSource 类似,不同之处在于它提供直接驱动程序使用,这有助于解决特殊 JDBC DriverManager 中的一般 class 加载问题 class加载OSGi等环境
在 Spring 中,使用 DriverManagerDataSource 和 SimpleDriverDataSource 在给定 driverClassName 的情况下创建新数据源有什么区别, url,用户名和密码?
例如,对于 DriverManagerDataSource,您可以执行以下操作:
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
使用 SimpleDriverDataSource 时,您可以:
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
Class<? extends Driver> driver = (Class<? extends Driver>) Class.forName(driverClassName);
dataSource.setDriverClass(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
从描述的角度来看,差别不大。主要区别是概念上的,并在 OSGi 环境中发挥作用——引用 DriverManagerDataSource javadoc:
Within special class loading environments such as OSGi, this class is effectively superseded by SimpleDriverDataSource due to general class loading issues with the JDBC DriverManager that be resolved through direct Driver usage (which is exactly what SimpleDriverDataSource does).
DriverManagerDataSource — 标准 JDBC DataSource 接口的简单实现,通过 bean 属性配置普通的旧 JDBC DriverManager,并返回一个新的连接每次 getConnection 调用。
SimpleDriverDataSource — 与 DriverManagerDataSource 类似,不同之处在于它提供直接驱动程序使用,这有助于解决特殊 JDBC DriverManager 中的一般 class 加载问题 class加载OSGi等环境