【问题标题】:Difference between DriverManagerDataSource and SimpleDriverDataSourceDriverManagerDataSource 和 SimpleDriverDataSource 的区别
【发布时间】:2019-08-10 23:49:23
【问题描述】:

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

【问题讨论】:

    标签: spring jdbc datasource spring-jdbc


    【解决方案1】:

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

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

    More Info

    【讨论】:

      【解决方案2】:

      从描述的角度来看,差别不大。主要区别是概念上的,并且在 OSGi 环境中发挥作用 - 引用 DriverManagerDataSource javadoc

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-30
        • 2021-02-28
        • 2013-08-07
        • 2011-10-20
        • 2020-01-23
        • 1970-01-01
        • 2012-10-29
        相关资源
        最近更新 更多