如何防止JDBC创建数据库?

时间:2017-05-10 09:09:23

标签: java sqlite jdbc

任务:如果数据库不可用或已损坏,请查找备份,如果存在,请将其复制为主数据库。

目前,当我连接时,如果没有数据库,则会自动创建它:

Connection c = null;
try {
    Class.forName("org.sqlite.JDBC");
    c = DriverManager.getConnection("jdbc:sqlite:src/home/accounting/DB/myDatabase.sqlite");
    System.out.println("Opened database successfully");
    return c;
} catch (Exception e) {
    System.err.println(e.getClass().getName() + ": " + e.getMessage());
    return null;
}

我想阻止创建数据库,确定数据库是否存在或是否已损坏,并触发检查备份数据库的可用性。

1 个答案:

答案 0 :(得分:2)

您必须检查数据库的文件是否退出:

String dbPath = "src/home/accounting/DB/myDatabase.sqlite";
File dbFile = new File(dbPath);
if (dbFile.exists()) {
    //database already exist don't create it again
} else {
    Connection c = null;
    try {
        Class.forName("org.sqlite.JDBC");
        c = DriverManager.getConnection("jdbc:sqlite:" + dbPath);
        System.out.println("Opened database successfully");
        return c;
    } catch (ClassNotFoundException | SQLException e) {
        System.err.println(e.getClass().getName() + ": " + e.getMessage());
        return null;
    }
}