任务:如果数据库不可用或已损坏,请查找备份,如果存在,请将其复制为主数据库。
目前,当我连接时,如果没有数据库,则会自动创建它:
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;
}
我想阻止创建数据库,确定数据库是否存在或是否已损坏,并触发检查备份数据库的可用性。
答案 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;
}
}