Khi bạn đang sử dụng JDBC bên ngoài máy chủ ứng dụng, lớp DriverManager
quản lý việc thiết lập các kết nối.
Chỉ định cho DriverManager
mà trình điều khiển JDBC sẽ cố gắng tạo kết nối với. Cách dễ nhất để làm điều này là sử dụng Class.forName[]
trên lớp thực hiện giao diện java.sql.Driver
. Với Trình kết nối MySQL/J, tên của lớp này là com.mysql.cj.jdbc.Driver
. Với phương thức này, bạn có thể sử dụng tệp cấu hình bên ngoài để cung cấp tên lớp trình điều khiển và tham số trình điều khiển để sử dụng khi kết nối với cơ sở dữ liệu.
Phần sau của mã Java cho thấy cách bạn có thể đăng ký Trình kết nối MYSQL/J từ phương thức main[]
của ứng dụng. Nếu kiểm tra mã này, trước tiên hãy đọc phần Cài đặt tại Chương & NBSP; 4, Trình kết nối/J, để đảm bảo bạn đã cài đặt trình kết nối chính xác và thiết lập CLASSPATH
. Ngoài ra, đảm bảo rằng MySQL được cấu hình để chấp nhận các kết nối TCP/IP bên ngoài.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
// Notice, do not import com.mysql.cj.jdbc.*
// or you will have problems!
public class LoadDriver {
public static void main[String[] args] {
try {
// The newInstance[] call is a work around for some
// broken Java implementations
Class.forName["com.mysql.cj.jdbc.Driver"].newInstance[];
} catch [Exception ex] {
// handle the error
}
}
}
Sau khi trình điều khiển đã được đăng ký với DriverManager
, bạn có thể có được một phiên bản
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection["jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb"];
// Do something with the Connection
...
} catch [SQLException ex] {
// handle any errors
System.out.println["SQLException: " + ex.getMessage[]];
System.out.println["SQLState: " + ex.getSQLState[]];
System.out.println["VendorError: " + ex.getErrorCode[]];
}
0 được kết nối với một cơ sở dữ liệu cụ thể bằng cách gọi import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection["jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb"];
// Do something with the Connection
...
} catch [SQLException ex] {
// handle any errors
System.out.println["SQLException: " + ex.getMessage[]];
System.out.println["SQLState: " + ex.getSQLState[]];
System.out.println["VendorError: " + ex.getErrorCode[]];
}
1:Ví dụ & nbsp; 7.1 & nbsp; đầu nối/j: có được kết nối từ DriverManager
Nếu bạn chưa làm như vậy, vui lòng xem lại phần của Phần & NBSP; 7.1, kết nối với MySQL bằng giao diện JDBC DriverManager
ở trên trước khi làm việc với ví dụ dưới đây.
Ví dụ này cho thấy cách bạn có thể có được một phiên bản
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection["jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb"];
// Do something with the Connection
...
} catch [SQLException ex] {
// handle any errors
System.out.println["SQLException: " + ex.getMessage[]];
System.out.println["SQLState: " + ex.getSQLState[]];
System.out.println["VendorError: " + ex.getErrorCode[]];
}
0 từ DriverManager
. Có một vài chữ ký khác nhau cho phương pháp import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection["jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb"];
// Do something with the Connection
...
} catch [SQLException ex] {
// handle any errors
System.out.println["SQLException: " + ex.getMessage[]];
System.out.println["SQLState: " + ex.getSQLState[]];
System.out.println["VendorError: " + ex.getErrorCode[]];
}
6. Tham khảo tài liệu API đi kèm với JDK của bạn để biết thông tin cụ thể hơn về cách sử dụng chúng.import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection["jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb"];
// Do something with the Connection
...
} catch [SQLException ex] {
// handle any errors
System.out.println["SQLException: " + ex.getMessage[]];
System.out.println["SQLState: " + ex.getSQLState[]];
System.out.println["VendorError: " + ex.getErrorCode[]];
}
Khi
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection["jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb"];
// Do something with the Connection
...
} catch [SQLException ex] {
// handle any errors
System.out.println["SQLException: " + ex.getMessage[]];
System.out.println["SQLState: " + ex.getSQLState[]];
System.out.println["VendorError: " + ex.getErrorCode[]];
}
0 được thiết lập, nó có thể được sử dụng để tạo các đối tượng import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection["jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb"];
// Do something with the Connection
...
} catch [SQLException ex] {
// handle any errors
System.out.println["SQLException: " + ex.getMessage[]];
System.out.println["SQLState: " + ex.getSQLState[]];
System.out.println["VendorError: " + ex.getErrorCode[]];
}
8 và import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection["jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb"];
// Do something with the Connection
...
} catch [SQLException ex] {
// handle any errors
System.out.println["SQLException: " + ex.getMessage[]];
System.out.println["SQLState: " + ex.getSQLState[]];
System.out.println["VendorError: " + ex.getErrorCode[]];
}
9, cũng như truy xuất siêu dữ liệu về cơ sở dữ liệu. Điều này được giải thích trong các phần sau.Đối với Trình kết nối/J 8.0.24 trở lên: Khi người dùng cho kết nối không xác định, Trình kết nối/J triển khai các plugin xác thực của Plugin xác thực Kerberos đang được sử dụng; xem Phần & NBSP; 6.12.2, Kết nối bằng cách sử dụng Kerberos, để biết chi tiết]. When the user for the connection is unspecified, Connector/J's implementations of the authentication plugins use by default the name of the OS user who runs the application for authentication with the MySQL server [except when the Kerberos authentication plugin is being used; see Section 6.12.2, “Connecting Using Kerberos” for details].
Ghi chú
Tên người dùng chỉ được coi là không xác định khi các điều kiện sau đều được đáp ứng:
Phương pháp
DriverManager
0 không được sử dụng.Thuộc tính kết nối
DriverManager
1 không được sử dụng, ví dụ, URL kết nối hoặc ở nơi khác.Người dùng không được đề cập trong thẩm quyền của URL kết nối, như trong
DriverManager
2, ORDriverManager
3.
Lưu ý nếu [1] hoặc [2] không đúng và một chuỗi trống được truyền, tên người dùng là một chuỗi trống sau đó và không được coi là không xác định.
Cơ sở dữ liệu nguồn mở phổ biến nhất thế giới
4.4.1.3 & nbsp; thay đổi trong trình kết nối/j
Phần này mô tả một số thay đổi quan trọng hơn đối với API đầu nối/J đi từ phiên bản 5.1 đến 8.0. Bạn có thể cần điều chỉnh các cuộc gọi API của mình cho phù hợp:
Tên của lớp thực hiện
java.sql.Driver
trong Trình kết nối MYSQL/J đã thay đổi từDriverManager
5 thànhcom.mysql.cj.jdbc.Driver
. Tên lớp cũ đã bị phản đối.Tên của các lớp và giao diện thường được sử dụng này cũng đã được thay đổi:
Ngoại lệ Continterceptor: từ
DriverManager
7 đếnDriverManager
8StatementInterceptor: Từ
DriverManager
9 đếnDriverManager
0ConnectionLifecyCleInterceptor: từ
DriverManager
1 đếnDriverManager
2Xác thựcPlugin: Từ
DriverManager
3 đếnDriverManager
4Balancestrate: Từ
DriverManager
5 đếnDriverManager
6Mysqldatasource: từ
DriverManager
7 đếnDriverManager
8Mysqldatasourcefactory: từ
DriverManager
9 đếnClass.forName[]
0Mysqlconnectionpooldatasource: từ
Class.forName[]
1 đếnClass.forName[]
2Mysqlxadatasource: từ
Class.forName[]
3 đếnClass.forName[]
4Mysqlxid: từ
Class.forName[]
5 đếnClass.forName[]
6