java程序总是创建一个新的数据库

java程序总是创建一个新的数据库,java,database,sqlite,Java,Database,Sqlite,我的java项目将数据库与SQLite连接起来。(Sqlite-jdbc-3.7.2)连接没有问题。当程序找不到数据库时,立即创建一个新的数据库。但我不希望它这样做,我希望它连接到现有的数据库,所以它不应该创建新的数据库。我怎么做 我的java代码: public class JdbcSQLiteConnection { public static void main(String[] args) { try { Class.forName("o

我的java项目将数据库与SQLite连接起来。(Sqlite-jdbc-3.7.2)连接没有问题。当程序找不到数据库时,立即创建一个新的数据库。但我不希望它这样做,我希望它连接到现有的数据库,所以它不应该创建新的数据库。我怎么做

我的java代码:

public class JdbcSQLiteConnection {

    public static void main(String[] args) {
        try {
            Class.forName("org.sqlite.JDBC");
            String dbURL = "jdbc:sqlite:product.db";
            Connection conn = DriverManager.getConnection(dbURL);
            if (conn != null)
            {
               System.out.println("Connected to the database");
               DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
               System.out.println("Driver name: " + dm.getDriverName());
               System.out.println("Driver version: " + dm.getDriverVersion());
               System.out.println("Product name: " + dm.getDatabaseProductName());
               System.out.println("Product version: " +                                     dm.getDatabaseProductVersion());
               conn.close();
             }
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}
根据,您可以调整以执行您想要的操作:

String dbURL = "jdbc:sqlite:product.db";
SQLiteConfig config = new SQLiteConfig();
config.resetOpenMode(SQLiteOpenMode.CREATE); // this disable creation
Connection conn = DriverManager.getConnection(dbURL, config.toProperties());
// ...
这样,如果数据库存在,代码就可以工作,如果数据库不存在,就会出现异常(带有一条非常奇怪的消息):

java.sql.SQLException:[SQLITE\u CANTOPEN]无法打开数据库文件(内存不足)

去掉
如果(conn!=null)
,它将永远不会为null。