2017-07-18 100 views
0

我想在附加NEW sqlite数据库之前分离当前的sqlite数据库(OLD)。但是,当我执行下面的代码:在java中分离sqlite数据库

Statement statement = connection.createStatement(); 
statement.execute("DETACH database '" + alias+"'"); 
statement.close();** 

我收到以下错误:

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such database: OLD)

我曾尝试使用下面的代码连接数据库:

SQLiteDataSource dataSource = new SQLiteDataSource(); 
Connection connection = dataSource.getConnection(); 
Statement statement = connection.createStatement(); 
statement.execute("ATTACH DATABASE '" + path + "' AS " + alias); 
statement.close();** 

任何人可以请帮我在哪里我做错了?

+0

如果我尝试执行新老任意查询的方法独立,他们工作得很好,并得到所有需要的resultSet数据库每次创建新的参考解决问题对于NEW和OLD。但是当我把它们放在相同的代码中并查询它们时(首先附加NEW数据库文件,查询它,然后附加OLD然后查询OLD),我会在OLD的resultSet中获取重复数据。所以我想在我查询OLD之前拆离NEW – Anantha

+1

您是否尝试过在别名周围没有单引号(如文档中指定的)? –

+0

@DawoodibnKareem 是的,我试过1.'statement.execute(“DETACH database'”+ alias +“'”);' 2.'statement.execute(“DETACH database”+ alias);' 3.'语句.execute(“DETACH'”+ alias +“'”);' 4.'statement.execute(“DETACH”+ alias);' 所有4个给出同样的错误:( – Anantha

回答

0

由我打电话的初始化数据库连接:)