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
CREATEtrên *.* (global) - Root user mặc định có quyền này
- User thường chỉ có quyền trên database cụ thể