首页 > 解决方案 > DriverManagerDataSource 和 SimpleDriverDataSource 的区别

问题描述

在 Spring 中,使用DriverManagerDataSourceSimpleDriverDataSource在给定其 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);

标签: springjdbcdatasourcespring-jdbc

解决方案


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

SimpleDriverDataSource — 与 DriverManagerDataSource 类似,不同之处在于它提供了直接的驱动程序使用,这有助于解决特殊类加载环境(如 OSGi)中的 JDBC DriverManager 的一般类加载问题。

更多信息


推荐阅读