【问题标题】:JDBC. Doesn't work DDL command in Java CommunityJDBC。 Java 社区中的 DDL 命令不起作用
【发布时间】:2020-07-16 06:28:37
【问题描述】:

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

【问题讨论】:

  • 什么是“Java 社区”? IntelliJ?
  • 不要将代码发布为图片。请参阅此处了解更多详细信息:meta.stackoverflow.com/questions/285551
  • @a_horse_with_no_name 虽然在这种情况下,屏幕截图实际上可能是相关的,因为问题实际上并不在于代码本身,而是在于 IntelliJ 所做的 SQL 解析/验证(尽管我认为这是终极版独有的功能)。

标签: java sql jdbc ddl


【解决方案1】:
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());
    }
}

【讨论】:

    猜你喜欢
    • 2020-03-26
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    相关资源
    最近更新 更多