DriverManager 驱动管理类 有两个作用 :
调用 Class.forName 反射方法 , 加载 JDBC 驱动 ;
// 加载 JDBC 驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
上述反射操作 , 将 com.microsoft.sqlserver.jdbc.SQLServerDriver
类加载到了内存中 , 在该类中 , 定义了如下静态代码块 :
/**
* 提供连接到SQL Server数据库和获取有关JDBC驱动程序的信息的方法。
*/
public final class SQLServerDriver implements java.sql.Driver {
// 在DriverManager上注册
static {
try {
register();
} catch (SQLException e) {
if (drLogger.isLoggable(Level.FINER) && Util.isActivityTraceOn()) {
drLogger.finer("Error registering driver: " + e);
}
}
}
/**
* 将驱动注册到DriverManager。如果驱动程序已经注册,则无操作。
*
* @throws SQLException
* if error
*/
public static void register() throws SQLException {
if (!isRegistered()) {
mssqlDriver = new SQLServerDriver();
DriverManager.registerDriver(mssqlDriver);
}
}
}
只要 将 SQLServerDriver 类加载到内存中 , 就会 自动执行上述 register()
注册方法 , 在注册方法中会调用
DriverManager.registerDriver(mssqlDriver);
代码 , 注册驱动 ;
建立数据库链接 , 单个参数 函数原型 :
public static Connection getConnection(String url)
单个参数传入的 数据库连接字符串 , 格式如下 :
// 数据库连接字符串
String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=YourDatabaseName;user=YourUsername;password=YourPassword";
需要在上面的 URL 中 , 拼接 IP 地址 , 端口号 , 数据库名称 , 用户名 , 密码 等信息 ;
建立数据库链接 , 三个参数 函数原型 :
public static Connection getConnection(String url,
String user, String password) throws SQLException
单个参数传入的 数据库连接字符串 , 格式如下 :
// 数据库连接字符串
String connectionUrl = "jdbc:sqlserver://localhost:1433/YourDatabaseName";
需要在上面的 URL 中 , 拼接 IP 地址 , 端口号 , 数据库名称 ,
第二个参数是 用户名 , 第三个参数是 密码 ;
代码示例 :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Example {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost/mydatabase";
String user = "root";
String password = "mypassword";
try {
Connection conn = DriverManager.getConnection(url, user, password);
// 使用连接执行数据库操作
} catch (SQLException e) {
System.out.println("无法连接数据库:" + e.getMessage());
}
}
}