jdbc 个人理解
jdbc
是java 提供的一份操作数据的标准API接口.数据库供应商根据这份接口实现各自的驱动.上层应用程序调用这些api 就可以了,不用管是如何实现的.
根据JDBC 4.0 数据库供应商提供的驱动必须实现java.sql.driver
这个接口,以及包含META-INF/services/java.sql.Driver
这个文件.
jdbc api 包括的包:java.sql 和 javax.sql
DriverManager 解读
在使用供应商提供的jdbc-connector-driver 之前要先向 DriverManager
注册.DriverManager
统一管理所有的驱动,可以向DriverManager
同时注册多个驱动.
同时也是通过DriverManger
来连接数据库的.如DriverManager.DriverManager.getConnection();
在java1.7 版本中,不再需要显式的使用Class.forName() 来注册驱动了.
在DriverManger
初始化的时候会通过系统属性 jdbc.drivers
查找是否存在驱动.例如可以在properties 文件中 设置 jdbc.drivers=com.mysql.jdbc.driver 然后通过 System.setProperty(key, value)设置给系统变量.
DriverManager 还会在classPath 中查找是META-INF/services/java.sql.Driver
来加载驱动.
所以只要classPath 中存在jdbc 驱动,就可以了.如 mysql-jdbc-5.1.35.jar 包.
DataSource
可以用DataSource
来代替DriverManager
;具体如下:
http://blog.youkuaiyun.com/predisw/article/details/50151849