JDBC學(xué)習(xí)路線:
- Driver
- DriverManager
- Connection
- Statement, PreparedStatement, CallableStatement
- ResultSet
Driver
數(shù)據(jù)庫JDBC驅(qū)動(dòng)程序接口苔货。
DriverManager加載盡可能多的驅(qū)動(dòng)程序,然后對(duì)于任何給定的連接請(qǐng)求鹊汛,它會(huì)依次要求每個(gè)驅(qū)動(dòng)程序嘗試連接到目標(biāo)URL蒲赂。
Driver驅(qū)動(dòng)類加載時(shí),會(huì)創(chuàng)建一個(gè)自己的實(shí)例刁憋,并向DriverManager注冊(cè)滥嘴。應(yīng)用程序不再需要使用Class.forName()顯式加載JDBC驅(qū)動(dòng)程序。
public interface Driver {
// 驅(qū)動(dòng)是否兼容JDBC
boolean jdbcCompliant();
// 驅(qū)動(dòng)主版本號(hào)
int getMajorVersion();
// 驅(qū)動(dòng)次版本號(hào)
int getMinorVersion();
// 是否接受url
boolean acceptsURL(String url);
// 獲取驅(qū)動(dòng)可以配置的屬性
DriverPropertyInfo[] getPropertyInfo(String url, java.util.Properties info);
// 獲取連接
Connection connect(String url, java.util.Properties info);
}
DriverManager
管理數(shù)據(jù)庫JDBC驅(qū)動(dòng)程序的服務(wù)至耻。
DriverManager初始化時(shí)若皱,會(huì)加載系統(tǒng)屬性“jdbc.drivers”引用的驅(qū)動(dòng)程序類。
如:jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriverJDBC4.0驅(qū)動(dòng)程序必須包含文件META-INF/services/java.sql.Driver尘颓,文件內(nèi)每行是一個(gè)Driver接口的實(shí)現(xiàn)類名走触。
public class DriverManager {
// 注冊(cè)JDBC驅(qū)動(dòng)
static void registerDriver(Driver driver)
// 注冊(cè)JDBC驅(qū)動(dòng),注冊(cè)注銷回調(diào)方法da
static void registerDriver(Driver driver, DriverAction da);
// 注銷JDBC驅(qū)動(dòng)
static void deregisterDriver(Driver driver);
// 獲取JDBC驅(qū)動(dòng)列表
static Enumeration<Driver> getDrivers();
// 獲取URL對(duì)應(yīng)JDBC驅(qū)動(dòng)
static Driver getDriver(String url);
// 新建連接
static Connection getConnection(String url, Properties info);
static Connection getConnection(String url, String user, String password);
static Connection getConnection(String url);
}