如何使用java检查数据库是否为空

如何使用java检查数据库是否为空,java,database,Java,Database,我有一些需要数据库干净的功能,如何使用JAVA检查我的数据库是否干净? 我已经编写了有关数据库是否存在的代码,但找不到有关如何检查数据库是否干净的任何信息。请查看该代码: public static void createLocalDB(String driver, String url, String user, String password) { Connection connection = null; Statement statement; try {

我有一些需要数据库干净的功能,如何使用JAVA检查我的数据库是否干净?
我已经编写了有关数据库是否存在的代码,但找不到有关如何检查数据库是否干净的任何信息。

请查看该代码:

public static void createLocalDB(String driver, String url, String user, String password) {
    Connection connection = null;
    Statement statement;

    try {
        connection = SQLUtils.getDBConnection(driver,url,user,password);
        connection.setAutoCommit(true);
        statement = connection.createStatement();
        statement.execute("CREATE SEQUENCE IF NOT EXISTS INTERACTION_SEQ;");
        statement.execute("CREATE TABLE IF NOT EXISTS interaction(id CHAR(18) PRIMARY KEY,sequence BIGINT DEFAULT INTERACTION_SEQ.NEXTVAL,type CHAR(20),startdate TIMESTAMP,enddate TIMESTAMP,timeshift INT DEFAULT 0,xml CLOB, finished BOOLEAN DEFAULT false);");
        statement.execute("CREATE INDEX IF NOT EXISTS date_index_interaction ON interaction(startdate);");
        statement.execute("CREATE INDEX IF NOT EXISTS seq_index_interaction ON interaction(sequence);");
    } catch (SQLException | ClassNotFoundException e) {
        log.error("Error creating new local db, message:{}",e.getMessage());
    } finally {
        if( connection != null ) {
            try {
                connection.close();
            } catch (SQLException e) {
            }
        }
    }
}
您可以在项目中使用此方法,该方法的目的是在数据库为空(不存在)时创建数据库。只需调整数据库表的查询,它就能够生成序列、表等。请注意,我的SQL语法是针对H2数据库的,然后您需要调整自己的

如果你还有任何问题,请告诉我,我希望能帮你解决

干杯


-Rod

计算每个表中的行数?或者首先清除表,而不是期望其他操作提前完成。根据您使用的数据库,有一些查询可以获取所有表名。然后迭代该结果并对每个表执行select(仅获取行数)。这是一种方法,但我的DB有100多个表,因此我不确定这是否是正确的方法?另外,如果数据库不是空的,我应该抛出一个异常,因此清理表不是一个选项。您要求数据库必须为空的请求有点奇怪,但这是您需要自己解决的问题,因为没有通用的解决方案。也许你不需要检查所有的表,只需要检查几个关键的表?@RajieRoo没有其他方法。。。在任何情况下,即使对于100个表,使用
count()
也应该很快。