JDBC。 Java 社区中的 DDL 命令不起作用

JDBC. Doesn't work DDL command in Java Community

我使用 Java 社区,也许这是个问题。 因为一切都在 Ultimate 版本中运行。 但是我只能 create table 在 Workbench 与社区。 最有趣的是我可以drop table

Below is the sample code for executing DDL statements. Reference URL https://examples.javacodegeeks.com/core-java/sql/jdbc-ddl-example/

package com.jdbc.ddl.example;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
import org.apache.log4j.Logger;

public class JdbcExample {

    // JDBC Driver Name & Database URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String JDBC_DB_URL = "jdbc:mysql://localhost:3306";

    // JDBC Database Credentials
    static final String JDBC_USER = "root";
    static final String JDBC_PASS = "root";

    public final static Logger logger = Logger.getLogger(JdbcExample.class);

    public static void main(String[] args) {

        Connection connObj = null;
        Statement stmtOBj = null;
        try {
            Class.forName(JDBC_DRIVER);
            connObj = DriverManager.getConnection(JDBC_DB_URL, JDBC_USER, JDBC_PASS);

            stmtOBj = connObj.createStatement();

            // DDL Statement 1 - Create Database Schema!
            logger.info("\n=======CREATE DATABASE=======");           
            stmtOBj.executeUpdate("CREATE DATABASE Demo1");
            logger.info("\n=======DATABASE IS SUCCESSFULLY CREATED=======\n");

            logger.info("\n=======USING DATABASE=======\n");
            stmtOBj.executeUpdate("use Demo1");

            // DDL Statement 2 - Create Table!
            logger.info("\n=======CREATE TABLE=======");         
            stmtOBj.executeUpdate("CREATE TABLE Employee (\r\n" + 
                    "    EmpId int,\r\n" + 
                    "    LastName varchar(255),\r\n" + 
                    "    FirstName varchar(255),\r\n" + 
                    "    Address varchar(255),\r\n" + 
                    "    City varchar(255)\r\n" + 
                    ");");
            logger.info("\n=======TABLE IS SUCCESSFULLY CREATED=======\n");

            logger.info("\n=======SHOW TABLE STRUCTURE=======");
            showDbTableStructure();

            logger.info("\n=======DROP DATABASE=======");           
            stmtOBj.executeUpdate("DROP DATABASE Demo1");
            logger.info("\n=======DATABASE DROPPED SUCCESSFULLY=======\n");
            
        } catch(Exception sqlException) {
            sqlException.printStackTrace();
        } finally {
            try {
                if(stmtOBj != null) {
                    stmtOBj.close();    // Close Statement Object
                }
                if(connObj != null) {
                    connObj.close();    // Close Connection Object
                }
            } catch (Exception sqlException) {
                sqlException.printStackTrace();
            }
        }
    }
    
    // This Method Is Used To Print The Table Structure
    private static void showDbTableStructure() throws SQLException {
        StringBuilder builderObj = new StringBuilder();
        DatabaseMetaData metaObj = DriverManager.getConnection(JDBC_DB_URL, JDBC_USER, JDBC_PASS).getMetaData();
        ResultSet resultSetObj = metaObj.getColumns("Demo1", null, "Employee", "%");
 
        builderObj.append("Employee" + " Columns Are?= (");
        while (resultSetObj.next()) {
            String columnName = resultSetObj.getString(4);
            builderObj.append(columnName).append(", ");
        }
        builderObj.deleteCharAt(builderObj.lastIndexOf(",")).deleteCharAt(builderObj.lastIndexOf(" ")).append(")").append("\n");
        logger.info(builderObj.toString());
    }
}