maven

Chi tiết quan trọng nhất là thư viện Trình điều khiển JDBC cho chính máy chủ MySQL. Nó sẽ không hiển thị trên máy tính của bạn, vì vậy bạn cần thêm nó vào đó.

Nếu bạn đang sử dụng Maven, thì bạn cần giúp anh ấy bằng cách chỉ ra đúng thư viện.

Trình điều khiển JDBC của MySQL :

   	<dependency>
        	<groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        	<version>8.0.29</version>
    	</dependency>

Chỉ cần thêm mã này vào tệp pom.xml của bạn .

Tôi cũng sẽ đưa ra một vài trình điều khiển phổ biến hơn.

Trình điều khiển JDBC cho PostgeSQL :

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.4.0</version>
</dependency>

Trình điều khiển JDBC cho Oracle :

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>21.5.0.0</version>
</dependency>

Trình điều khiển JDBC cho H2 :

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version>
</dependency>

Truy vấn cơ sở dữ liệu đầu tiên

Tất cả các thư viện cần thiết đều được bao gồm, giờ là lúc chạy chương trình truy cập cơ sở dữ liệu đầu tiên của bạn. Chúng ta sẽ viết tất cả mã trong phương thức main() .

Giai đoạn 1 . Thêm một vài lần nhập trước phương thức main() - điều này sẽ giúp cuộc sống của bạn dễ dàng hơn nhiều:

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;

Giai đoạn 2 . Đầu tiên chúng ta cần tạo một kết nối cơ sở dữ liệu. Để làm điều này, trong phương thức main() , hãy viết đoạn mã sau:

Connection connection  = DriverManager.getConnection(
           "jdbc:mysql://localhost:3306/test",
           "login", "password");

Bạn cũng có thể làm điều đó trong một dòng - tùy theo cách nào thuận tiện hơn cho bạn. Tất nhiên, đăng nhập và mật khẩu, bạn cần thay thế bằng mật khẩu thật từ máy chủ MySQL cục bộ của mình.

Giai đoạn 3 . Chúng tôi tạo một truy vấn đến cơ sở dữ liệu. Hãy lấy tất cả người dùng từ bảng người dùng. Sau đó, bạn sẽ cần thêm dòng mã này:

Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");

Đó là hai dòng. Đầu tiên chúng ta tạo một đối tượngTuyên bốvà trong lần thứ hai, chúng tôi sử dụng nó để truy vấn cơ sở dữ liệu. Phương thức execQuery() thực thi một truy vấn cơ sở dữ liệu và trả về một đối tượng có kiểutập hợp kết quả.

Giai đoạn 4 . Hiển thị dữ liệu chứa trong đối tượngtập hợp kết quả.

tập hợp kết quả- không phải là một bộ, nó chỉ được gọi như vậy. Nó lưu trữ kết quả của việc thực hiện truy vấn. Đối tượng này hơi giống với một trình vòng lặp: nó cho phép bạn đặt/thay đổi hàng hiện tại của kết quả, sau đó bạn có thể lấy dữ liệu từ hàng hiện tại này. Thêm đoạn mã sau vào ví dụ của bạn:

while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
}

Phương thức next() thay đổi hàng kết quả hiện tại thành hàng tiếp theo. Nó trả về true nếu có một dòng như vậy và trả về false nếu không còn dòng nào nữa.

Sau đó, từ dòng hiện tại của đối tượngtập hợp kết quảbạn có thể lấy dữ liệu từ các cột của nó:

  • getRow() - trả về số hàng hiện tại trong đối tượngtập hợp kết quả
  • getInt(N) - sẽ trả về dữ liệu của cột thứ N của hàng hiện tại dưới dạng int
  • getString(N) - sẽ trả về dữ liệu của cột thứ N của hàng hiện tại dưới dạng Chuỗi

Danh sách chương trình đầy đủ

Để giảm thiểu lỗi, đây là danh sách đầy đủ của chương trình:

package org.example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcApplicatin {
    public static void main(String[] args) throws  Exception{
 	   Connection connection  = DriverManager.getConnection(
          	"jdbc:mysql://localhost:3306/test",
          	"root", "secret");

        Statement statement = connection.createStatement();
    	ResultSet results = statement.executeQuery("SELECT * FROM user");

    	while (results.next()) {
        	Integer id = results.getInt(1);
        	String name = results.getString(2);
        	System.out.println(results.getRow() + ". " + id + "\t"+ name);
    	}
    	connection.close();
    }
}

Và đầu ra màn hình của tôi sau khi chạy chương trình:

"C:\Tệp chương trình\Java\jdk-17.0.3.1\bin\java.exe...
mười một Ivanov Ivan
2.2 Petrov Nikolai
3.3 Sidorov Vitaly
Quá trình kết thúc với mã thoát 0