#java.sql.Driver
# 描述
java.sql.Driver是JDBC规范中定义的数据库驱动核心接口,该接口位于java.sql包下,JDK自带该接口定义,它的核心作用是:
用于识别可连接的URL。
定义Java程序与具体数据库驱动的交互规范。
负责创建
Connection(数据库连接)对象,是程序连接数据库的“入口”。提供驱动的基本信息(如版本、是否接受某个URL)。
详细接口说明请参考JDBC官方网站 (opens new window)。
# 方法
YashanDB JDBC驱动对Driver接口有如下方法:
| 方法 | 返回类型 |
|---|---|
| connect(String url, java.util.Properties info) | Connection |
| acceptsURL(String url) | boolean |
| getPropertyInfo(String url,java.util.Properties info) | DriverPropertyInfo[] |
| getMajorVersion() | int |
| getMinorVersion() | int |
| jdbcCompliant() | boolean |
# 示例
package quickstart;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.DriverPropertyInfo;
import java.sql.SQLException;
import java.util.Properties;
public class CustomDriverManager {
public static void main(String[] args) throws Exception {
Class.forName("com.yashandb.jdbc.Driver");
try (Connection conn = getConnection(
"jdbc:yasdb://192.168.1.2:1688/yasdb",
"username",
"passwd")) {
// 连接使用完毕后自动关闭
}
}
public static Connection getConnection(String url, String user, String password)
throws SQLException {
// 1. 查找合适的驱动
Driver suitableDriver = findSuitableDriver(url);
if (suitableDriver == null) {
throw new SQLException("No suitable driver found for URL: " + url);
}
// 2. 检查驱动版本
int majorVersion = suitableDriver.getMajorVersion();
int minorVersion = suitableDriver.getMinorVersion();
System.out.println("Using driver version: " + majorVersion + "." + minorVersion);
// 3. 检查 JDBC 合规性
if (!suitableDriver.jdbcCompliant()) {
System.out.println("Warning: Driver is not fully JDBC compliant");
}
// 4. 获取连接属性要求
Properties baseProps = new Properties();
baseProps.setProperty("user", user);
baseProps.setProperty("password", password);
DriverPropertyInfo[] requiredProps = suitableDriver.getPropertyInfo(url, baseProps);
for (DriverPropertyInfo prop : requiredProps) {
if (prop.required && prop.value == null) {
System.out.println("Missing required property: " + prop.name);
}
}
// 5. 建立连接
Properties connectionProps = new Properties();
connectionProps.setProperty("user", user);
connectionProps.setProperty("password", password);
return suitableDriver.connect(url, connectionProps);
}
private static Driver findSuitableDriver(String url) throws SQLException {
// 遍历已注册的驱动以找到匹配的驱动
java.util.Enumeration<Driver> drivers = DriverManager.getDrivers();
while (drivers.hasMoreElements()) {
Driver driver = drivers.nextElement();
if (driver.acceptsURL(url)) {
return driver;
}
}
return null;
}
}
正常情况下,程序输出如下:
Using driver version: 1.10
Warning: Driver is not fully JDBC compliant

