Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何防止JDBC创建数据库?_Java_Sqlite_Jdbc - Fatal编程技术网

Java 如何防止JDBC创建数据库?

Java 如何防止JDBC创建数据库?,java,sqlite,jdbc,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("Ope

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

当前,当我连接时,如果没有数据库,将自动创建该数据库:

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;
}

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

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

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;
    }
}

JDBC不创建任何东西。MySQLLite驱动程序可能会出错。