Cách kết nối với cơ sở dữ liệu MySQL bằng Java

Cách kết nối với cơ sở dữ liệu MySQL bằng Java

Java cung cấp JDBC (Kết nối Java DataBase) như một phần của Java SDK (Bộ phát triển phần mềm). Sử dụng cái này CHÁY , rất dễ dàng kết nối với cơ sở dữ liệu quan hệ và thực hiện các thao tác phổ biến như truy vấn, chèn, cập nhật và xóa bản ghi.





Mặc dù API JDBC cốt lõi được bao gồm trong java, việc kết nối với một cơ sở dữ liệu cụ thể như MySQL hoặc SQL Server yêu cầu một thành phần bổ sung được gọi là trình điều khiển cơ sở dữ liệu. Trình điều khiển cơ sở dữ liệu này là một thành phần phần mềm dịch các lệnh gọi JDBC cốt lõi sang định dạng được cơ sở dữ liệu đó hiểu.





xbox một bộ điều khiển không bật

Trong bài viết này, chúng ta hãy xem xét chi tiết kết nối với cơ sở dữ liệu MySQL và cách thực hiện một vài truy vấn với nó.





Trình điều khiển cơ sở dữ liệu MySQL

Như đã giải thích ở trên, để có thể kết nối với cơ sở dữ liệu MySQL, bạn cần trình điều khiển JDBC cho MySQL. Đây được gọi là trình điều khiển Connector / J và có thể được tải xuống từ trang web MySQL tại đây.

Sau khi bạn tải xuống tệp ZIP (hoặc TAR.GZ), hãy giải nén tệp lưu trữ và sao chép tệp JAR mysql-connector-java - bin.jar đến một vị trí thích hợp. Tệp này là bắt buộc để chạy bất kỳ mã nào sử dụng MySQL JDBC Driver.



Tạo cơ sở dữ liệu mẫu

Giả sử bạn đã tải xuống cơ sở dữ liệu MySQL và thiết lập nó đúng cách nơi bạn có quyền truy cập vào nó, hãy để chúng tôi tạo một cơ sở dữ liệu mẫu để chúng tôi có thể sử dụng nó để kết nối và thực hiện các truy vấn.

Kết nối với cơ sở dữ liệu bằng ứng dụng khách bạn chọn và chạy các câu lệnh sau để tạo cơ sở dữ liệu mẫu.





create database sample;

Chúng tôi cũng cần tên người dùng và mật khẩu để có thể kết nối với cơ sở dữ liệu (trừ khi bạn muốn kết nối với tư cách quản trị viên, điều này thường là một ý tưởng tồi).

Sau đây tạo một người dùng có tên người thử nghiệm ai sẽ kết nối với cơ sở dữ liệu MySQL từ cùng một máy mà nó đang chạy (được biểu thị bằng localhost ), sử dụng mật khẩu bảo mật .





create user 'testuser'@'localhost' identified by 'securepwd';

Nếu bạn đang kết nối với một cơ sở dữ liệu đang chạy trên một máy khác (có tên remotemc ), bạn cần sử dụng những thứ sau ( remotemc có thể là tên máy chủ hoặc địa chỉ ip):

create user 'testuser'@'remotemc' identified by 'securepwd';

Bây giờ tên người dùng và mật khẩu đã được tạo, chúng ta cần cấp quyền truy cập vào cơ sở dữ liệu mẫu đã tạo trước đó.

grant all on sample.* to 'testuser'@'localhost';

Hoặc, nếu cơ sở dữ liệu ở xa:

grant all on sample.* to 'testuser'@'remotemc';

Bây giờ bạn nên xác minh rằng bạn có thể kết nối với cơ sở dữ liệu với tư cách là người dùng bạn vừa tạo bằng cùng một mật khẩu. Bạn cũng có thể chạy các lệnh sau sau khi kết nối để đảm bảo tất cả các quyền đều chính xác.

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Thiết lập đường dẫn lớp Java

Bây giờ chúng ta hãy đi vào chi tiết về cách kết nối với MySQL từ Java. Bước đầu tiên là tải trình điều khiển cơ sở dữ liệu. Điều này được thực hiện bằng cách gọi những điều sau đây tại một vị trí thích hợp.

làm thế nào để xóa khác trên iPhone
Class.forName('com.mysql.jdbc.Driver');

Mã có thể đưa ra một ngoại lệ, vì vậy bạn có thể nắm bắt nó nếu bạn định xử lý nó (chẳng hạn như định dạng thông báo lỗi cho GUI).

try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}

Việc gọi mã này trong một khối tĩnh trong lớp là rất phổ biến, do đó chương trình bị lỗi ngay lập tức nếu không thể tải trình điều khiển.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}

Tất nhiên, để có thể tìm thấy trình điều khiển, chương trình phải được gọi với trình điều khiển JAR (đã tải xuống và giải nén ở trên) có trong đường dẫn lớp như sau.

java -cp mysql-connector-java - bin.jar: ...

Kết nối với MySQL từ Java

Bây giờ chúng ta đã bình phương các chi tiết về việc tải trình điều khiển MySQL từ java, hãy để chúng ta kết nối với cơ sở dữ liệu. Một cách để tạo kết nối cơ sở dữ liệu để sử dụng DriverManager .

String jdbcUrl = ...;
Connection con = DriverManager.getConnection(jdbcUrl);

Và cái gì là jdbcUrl ? Nó chỉ ra các chi tiết của kết nối, bao gồm máy chủ nơi đặt cơ sở dữ liệu, tên người dùng, v.v. Đây là một URL mẫu cho ví dụ của chúng tôi.

String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=secrepwd';

Lưu ý rằng chúng tôi đã bao gồm tất cả các thông số cần thiết cho kết nối, bao gồm cả tên máy chủ ( localhost ), tên người dùng và mật khẩu. (Bao gồm mật khẩu như thế này KHÔNG phải là một phương pháp hay, hãy xem bên dưới để biết các lựa chọn thay thế.)

Sử dụng cái này jdbcUrl , đây là một chương trình hoàn chỉnh để kiểm tra kết nối.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
con.close();
}
}

Lưu ý rằng kết nối cơ sở dữ liệu là một tài nguyên quý giá trong một chương trình và phải được đóng đúng cách như trên. Tuy nhiên, đoạn mã trên không đóng kết nối trong trường hợp có ngoại lệ. Để đóng kết nối trên một lối ra bình thường hoặc bất thường, hãy sử dụng mẫu sau:

try(Connection con = DriverManager.getConnection(jdbcUrl)) {
System.out.println('Connected!');
}

Như đã lưu ý ở trên, bạn nên nhúng mật khẩu vào URL JDBC. Để chỉ định trực tiếp tên người dùng và mật khẩu, bạn có thể sử dụng tùy chọn kết nối sau để thay thế.

nếu bạn gắn thẻ ai đó trong một bình luận thì nó có hiển thị trên tường của họ không
String jdbcUrl = 'jdbc:mysql://localhost/sample';
try(Connection con = DriverManager.getConnection(jdbcUrl, 'testuser', 'securepwd')) {
}

Truy vấn cơ sở dữ liệu từ Java

Bây giờ kết nối với cơ sở dữ liệu đã được thiết lập, chúng ta hãy xem cách thực hiện truy vấn, chẳng hạn như truy vấn phiên bản cơ sở dữ liệu:

select version();

Một truy vấn được thực hiện trong java như sau. MỘT Tuyên bố đối tượng được tạo và một truy vấn được thực thi bằng cách sử dụng thực hiện kiểm tra() phương thức trả về một ResultSet .

String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

In phiên bản từ ResultSet như sau. 1 đề cập đến chỉ mục của cột trong kết quả, bắt đầu từ 1.

while ( rset.next()) {
System.out.println('Version: ' + rset.getString(1));
}

Sau khi xử lý kết quả, các đối tượng cần được đóng lại.

rset.close();
stmt.close();

Và điều đó bao hàm tất cả là kết nối với MySQL từ java và thực hiện một truy vấn đơn giản.

Cũng kiểm tra của chúng tôi Bảng gian lận lệnh SQL .

Đăng lại Đăng lại tiếng riu ríu E-mail Cài đặt Windows 11 trên PC không tương thích có được không?

Giờ đây, bạn có thể cài đặt Windows 11 trên các PC cũ hơn bằng tệp ISO chính thức ... nhưng bạn có nên làm như vậy không?

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Java
  • SQL
Giới thiệu về tác giả Jay Sridhar(17 bài báo đã xuất bản) Xem thêm từ Jay Sridhar

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký