Java mysql如果表存在

Java mysql如果表存在,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,感谢大家对我使用MySQL学习Java这场史诗般的战斗的支持。我要做的是检查表是否存在。当前发生的情况是,如果创建了数据库,同时也创建了表。 但是如果我运行相同的代码,我会得到一个错误,即表已经存在 最大的问题是我如何检查表是否存在? 下面是我编写的一些代码 if (tabCrea.createTable(dbDef, con, preStatement, tabStruct.getAgentDetail(), "Agent Details")) System.out.println("

感谢大家对我使用MySQL学习Java这场史诗般的战斗的支持。我要做的是检查表是否存在。当前发生的情况是,如果创建了数据库,同时也创建了表。 但是如果我运行相同的代码,我会得到一个错误,即表已经存在

最大的问题是我如何检查表是否存在? 下面是我编写的一些代码

if (tabCrea.createTable(dbDef, con, preStatement, tabStruct.getAgentDetail(), "Agent Details"))
    System.out.println("Passed Here");
else
    System.out.println("Failed Here");
以下哪一项叫做

protected boolean createTable(DataBaseDefaults dbDef, Connection con, Statement statement, String myTableName, String tableName) {

    try {
        Class.forName(dbDef.getJdbcDriver());
        con = DriverManager.getConnection(dbDef.getDbAddress() + dbDef.getPortAddress() + dbDef.getDbName(), 
                dbDef.getDbUserName(), dbDef.getDbPassword());
        statement = con.createStatement();
        statement.executeUpdate(myTableName);
        System.out.println("Table Sucessfully Created : " + tableName);
        return true;
    }
    catch (SQLException e ) {
        //Problem is caught here;
        System.out.println("An error has occured on Table Creation with Table " + tableName);
        return false;
    }
    catch (ClassNotFoundException e) {
        System.out.println("There was no Mysql drivers found");
        return false;
    }
}
这个表是在这里定义的

private String agentDetail = "CREATE TABLE AgentDetail ("
    + "AgentDetailIdNo INT(64) NOT NULL AUTO_INCREMENT,"
    + "Initials VARCHAR(2),"
    + "AgentDetailDate DATE,"
    + "AgentDetailCount INT(64),"
    + "PRIMARY KEY(AgentDetailIdNo)"
    + ")";
一个谦逊的黑客会感激任何提供的帮助

您可以使用

SHOW TABLES LIKE '$this_table'  or
SHOW TABLES FROM $dbname 
你可以用

SHOW TABLES LIKE '$this_table'  or
SHOW TABLES FROM $dbname 

并检查表是否已经存在

有两种方法:

1) 如果要保留表(如果该表确实存在),请使用:

2) 如果要删除该表并重新开始,请先使用语句删除该表。为此,请运行该语句

DROP TABLE IF EXISTS AgentDetail

在创建表查询之前(请注意,这将删除表中的所有现有数据)

API是JDBC规范的一部分,是在Java中执行此操作的方法。您将特别希望签出“getTables”方法。这是一个需要熟悉的好类。

如果不存在创建表
?谢谢Jess,我已经看过了,但我知道我必须知道更多才能欣赏它。基思
DROP TABLE IF EXISTS AgentDetail