2017-05-10 57 views
1

任务:如果数据库不可用或损坏,请查找备份,如果存在,则将其复制为主数据库。如何防止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; 
} 

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

+0

JDBC不创造任何东西。 MySQLLite驱动程序可能。 – EJP

回答

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; 
    } 
} 
相关问题