DriverManagerDataSource和SimpleDriverDataSource之间的区别

时间:2019-03-20 10:05:50

标签: spring jdbc datasource spring-jdbc

在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);

2 个答案:

答案 0 :(得分:1)

从所描述的观点来看,差异很小。主要区别是概念上的,并且在OSGi环境中起作用-引用DriverManagerDataSource javadoc

  

在特殊类加载环境中   例如OSGi,此类已被有效地取代   SimpleDriverDataSource是由于一般类加载问题而导致的   JDBC DriverManager可通过直接使用驱动程序来解决(   正是SimpleDriverDataSource所做的。)

答案 1 :(得分:1)

DriverManagerDataSource -标准JDBC DataSource接口的简单实现,通​​过bean属性配置普通的旧JDBC DriverManager,并从每个getConnection调用返回一个新的Connection。

SimpleDriverDataSource —与DriverManagerDataSource相似,不同之处在于它提供直接的Driver使用,这有助于解决在OSGi等特殊类加载环境中使用JDBC DriverManager进行的类加载问题。

More Info