Để 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ểm | Class.forName() | DriverManager.registerDriver() |
|---|---|---|
| Cách thức | Nạp lớp bằng tên chuỗi | Tạo instance driver trực tiếp |
| Xử lý ngoại lệ | ClassNotFoundException | SQLException |
| 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.