经过javaAPI中javax.sql.DataSource接口注释了解。java
以下图:spring
翻译:sql
DataSource对象表明一个链接到物理数据源的工厂。在寻找DriverManager的替代方案时,发现DataSource是替代DriverManager得到链接的最好选择。实现DataSource接口的对象一般会注册到基于JNDI的命名服务当中。数据库
了解JNDI请跳转至https://blog.csdn.net/wn084/article/details/80729230
服务器
翻译:分布式
DataSource接口由驱动提供商实现。有3种类型的实现:工具
《1》基本实现:提供一个标准java.sql.Connection对象ui
《2》链接池实现:提供一个java.sql.Connection对象,这个Connection对象自动被放到链接池中。此实现与中间层链接池管理器一块儿工做。spa
《3》分布式事务实现:提供一个java.sql.Connection对象,该对象可用于分布式事务,而且几乎老是参与链接池。此实现与中间层事务管理器一块儿工做,而且几乎老是与链接池管理器一块儿工做。.net
总结:
实现了DataSource接口的数据源有DBCP、C3P0、Druid、Proxool。
spring项目推荐使用DBCP;Hibernate 推荐使用c3p0和proxool。
每一个数据源的特色介绍请跳转至https://blog.csdn.net/weixin_37377718/article/details/69666627###
翻译:
DataSource对象具备可修改的属性必要时。例如,若是将数据源移动到其余服务器,则能够更改服务器的属性。这样作的好处是,由于能够更改数据源的属性,因此访问该数据源的任何代码都不须要更改。
翻译:
经过DataSource对象访问的驱动程序不会向DriverManager注册自身。更确切地说,是DataSource经过查找操做检索对象而后用于建立Connection对象。对于基本实现,经过DataSource对象得到的链接与经过DriverManager工具得到的链接相同。
实现DataSource接口时必须建立一个无参构造器。
DataSource接口只有两个方法:getConnection()与getConnection(String userName,String userPassword)
javax.sql.DataSource的功能就是获取链接。
该类位于java.sql包。
下面经过源码注释了解一下DriverManager。
翻译:
DriverManager管理一组jdbc驱动程序的基本服务。注意:javax.sql.DataSource是新的JDBC2.0的API,提供了链接到数据源的其余方式。推荐使用DataSource链接到数据源。
总结:
DriverManager是比较早的用于获取数据库链接的类,而DataSource是用于替代DriverManager的。
主要方法就是获取链接、注册驱动(不经常使用)。
该类位于java.sql包。
翻译:
Connection表明链接到了一个特定的数据库。经过Connection对象能够执行SQL语句并从数据库得到执行结果。