spring - DriverManagerDataSource 和 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);
解决方案
DriverManagerDataSource — 标准 JDBC DataSource 接口的简单实现,通过 bean 属性配置普通的旧 JDBC DriverManager,并从每个 getConnection 调用返回一个新的 Connection。
SimpleDriverDataSource — 与 DriverManagerDataSource 类似,不同之处在于它提供了直接的驱动程序使用,这有助于解决特殊类加载环境(如 OSGi)中的 JDBC DriverManager 的一般类加载问题。
推荐阅读
- android - 从 Android Studio 运行应用程序与其 APK 有什么区别?
- javascript - 我想了解如何使用以下模式在 javascript 中创建函数不会引发错误
- javascript - 是否可以使用尚不存在的参数传入函数?
- python - 按下按钮事件时如何使用新的 wx.panel 或 wx.ListBox
- c# - 计时器为空。你调用的对象是空的
- python - 如何将图像中的标题和标题与正文分开
- ios - 更改 MKMapView 的缩放 - Swift 4
- opengl - OpenGL 3.3 Core-Profile:如何管理缓冲区数组以绘制多个图元?
- javascript - 将 Javascript 或 Jquery 中的字符串输出(显示)到 html 中的一行
- python - 通过 send_keys() 发送的字符序列与通过 Python 和 Selenium 呈现的默认文本连接起来