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

Cách tạo database trong MySQL sử dụng JDBC API?

Tạo database MySQL thông qua Java JDBC

Thực thi câu lệnh CREATE DATABASE qua JDBC Statement sau khi kết nối đến MySQL server (không cần chỉ định database trong URL).

Mã Java hoàn chỉnh

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

public class CreateDatabaseExample {
    public static void main(String[] args) throws SQLException {
        // 1. Register driver (MySQL 8.0+)
        DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
        
        // 2. Kết nối đến MySQL server (không chỉ định database)
        String mysqlUrl = "jdbc:mysql://localhost/";
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
        System.out.println("Connection established......");
        
        // 3. Tạo Statement
        Statement stmt = con.createStatement();
        
        // 4. Thực thi CREATE DATABASE
        String query = "CREATE DATABASE MyDatabase";
        stmt.execute(query);
        System.out.println("Database created");
        
        // 5. Đóng tài nguyên
        stmt.close();
        con.close();
    }
}

Kết quả đầu ra

Connection established......
Database created

Xác minh database đã tạo

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydatabase         |  -- Database mới
| mysql              |
| performance_schema |
| sys                |
+--------------------+

Các tùy chọn CREATE DATABASE

-- Chỉ định charset và collation
CREATE DATABASE MyDatabase 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

-- Tạo nếu chưa tồn tại (tránh lỗi)
CREATE DATABASE IF NOT EXISTS MyDatabase;

Best Practice JDBC

  • Sử dụng try-with-resources (Java 7+) để tự động đóng Connection, Statement
  • Xử lý SQLException phù hợp
  • Connection URL nên có: ?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
  • Không hardcode password, dùng config file / environment variable
  • Dùng PreparedStatement cho query có tham số (CREATE DATABASE không có tham số)

Lưu ý quyền hạn

  • User cần quyền CREATE trên *.* (global)
  • Root user mặc định có quyền này
  • User thường chỉ có quyền trên database cụ thể