如何使用java检查数据库是否为空
我有一些需要数据库干净的功能,如何使用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 {
我已经编写了有关数据库是否存在的代码,但找不到有关如何检查数据库是否干净的任何信息。请查看该代码:
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()
也应该很快。