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

Kết nối cơ sở dữ liệu MySQL với Java (JDBC)

Giới thiệu

Hướng dẫn kết nối MySQL từ Java sử dụng JDBC (Java Database Connectivity).

1. Chuỗi kết nối (Connection URL)

String MySQLURL = "jdbc:mysql://localhost:3306/yourDatabaseName?useSSL=false";
String databaseUserName = "yourUserName";
String databasePassword = "yourPassword";

Tham số:

  • localhost:3306: Host và port MySQL mặc định
  • yourDatabaseName: Tên database
  • useSSL=false: Tắt SSL (cho phát triển local), production nên bật SSL
  • Có thể thêm: ?serverTimezone=UTC&allowPublicKeyRetrieval=true

2. Ví dụ hoàn chỉnh

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class ConnectToDatabase {
    public static void main(String[] args) {
        String MySQLURL = "jdbc:mysql://localhost:3306/web?useSSL=false";
        String databaseUserName = "root";
        String databasePassword = "123456";
        Connection con = null;
        try {
            con = DriverManager.getConnection(MySQLURL, databaseUserName, databasePassword);
            if (con != null) {
                System.out.println("Database connection is successful !!!!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3. Kết quả

Database connection is successful !!!!

Kết nối cơ sở dữ liệu MySQL với Java (JDBC)

4. Các bước quan trọng

  1. Thêm driver MySQL Connector/J vào classpath (Maven: mysql:mysql-connector-java)
  2. Tải driver: Class.forName("com.mysql.cj.jdbc.Driver") (tự động từ JDBC 4.0+)
  3. Sử dụng try-with-resources để tự động đóng kết nối (Java 7+)
  4. Sử dụng PreparedStatement để chống SQL Injection

5. Ví dụ try-with-resources (khuyên dùng)

try (Connection con = DriverManager.getConnection(url, user, pass);
     PreparedStatement ps = con.prepareStatement("SELECT * FROM users WHERE id = ?")) {
    ps.setInt(1, 1);
    try (ResultSet rs = ps.executeQuery()) {
        while (rs.next()) {
            System.out.println(rs.getString("name"));
        }
    }
}