Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Có bao nhiêu cách đăng ký driver trong Java JDBC?

Để kết nối cơ sở dữ liệu bằng JDBC, bạn cần lấy driver cho database tương ứng và đăng ký driver. Có hai cách đăng ký driver:

1. Dùng Class.forName()

Phương thức forName() của lớp Class nhận tên lớp dạng String và nạp vào bộ nhớ. Ngay khi nạp xong, driver tự động đăng ký.

Class.forName("com.mysql.jdbc.Driver");

Ví dụ

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

public class RegisterDriverExample { 
    public static void main(String args[]) throws SQLException { 
        // Đăng ký driver bằng forName() 
        Class.forName("com.mysql.jdbc.Driver"); 
        
        // Lấy kết nối 
        String mysqlUrl = "jdbc:mysql://localhost/mydatabase"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Connection established: " + con); 
    } 
}

Kết quả

Connection established: com.mysql.jdbc.JDBC4Connection@4fccd51b

2. Dùng DriverManager.registerDriver()

Phương thức registerDriver() của DriverManager nhận object của lớp driver và đăng ký với JDBC driver manager.

Driver myDriver = new com.mysql.jdbc.Driver(); 
DriverManager.registerDriver(myDriver);

Ví dụ

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

public class RegisterDriverExample { 
    public static void main(String args[]) throws SQLException { 
        // Đăng ký driver bằng registerDriver() 
        DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
        
        String mysqlUrl = "jdbc:mysql://localhost/mydatabase"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Connection established: " + con); 
    } 
}

Kết quả

Connection established: com.mysql.jdbc.JDBC4Connection@4fccd51b

So sánh và lưu ý

Đặc điểmClass.forName()DriverManager.registerDriver()
Cách thứcNạp lớp bằng tên chuỗiTạo instance driver trực tiếp
Xử lý ngoại lệClassNotFoundExceptionSQLException
Khuyến nghịPhổ biến hơn, linh hoạtÍt dùng, tạo instance dư thừa
JDBC 4.0+ (Java 6+)Tự động nạp driver (Service Provider Mechanism) - không cần đăng ký tường minh

Lưu ý: Từ JDBC 4.0 (Java 6), driver tự động được phát hiện qua file META-INF/services/java.sql.Driver trong JAR. Việc đăng ký tường minh không còn bắt buộc nhưng vẫn hoạt động để tương thích ngược.