在java中分离sqlite数据库
Posted
技术标签:
【中文标题】在java中分离sqlite数据库【英文标题】:detach sqlite database in java 【发布时间】:2017-07-18 05:59:03 【问题描述】:我想在附加新的 sqlite 数据库之前分离当前的 sqlite 数据库(旧)。但是当我执行下面的代码时:
Statement statement = connection.createStatement();
statement.execute("DETACH database '" + alias+"'");
statement.close();**
我收到以下错误:
java.sql.SQLException: [SQLITE_ERROR] SQL 错误或缺少数据库(没有这样的数据库:OLD)
我已使用以下代码附加数据库:
SQLiteDataSource dataSource = new SQLiteDataSource();
Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement();
statement.execute("ATTACH DATABASE '" + path + "' AS " + alias);
statement.close();**
谁能帮我看看我哪里做错了?
【问题讨论】:
如果我尝试对 NEW 和 OLD 数据库独立执行任何查询,它们可以正常工作并获得 NEW 和 OLD 所需的所有结果集。但是当我将它们放在相同的代码中并查询它们时(首先附加新的数据库文件,查询它,然后附加旧的,然后查询旧的),我在旧的结果集中得到重复的数据。所以我想在查询 OLD 之前分离 NEW 您是否尝试过在别名周围不加单引号(如文档中所述)? @DawoodibnKareem 是的,我试过了 1.statement.execute("DETACH database '" + alias+"'");
2.statement.execute("DETACH database " + alias);
3.statement.execute("DETACH '" + alias+"'");
4.statement.execute("DETACH " + alias);
它们都给出了相同的错误:(
@user7294900 你能告诉我如何用 PATH 分离
你使用的是同一个连接对象吗?
【参考方案1】:
通过每次我调用初始化数据库连接的方法时创建新引用来解决问题:)
【讨论】:
以上是关于在java中分离sqlite数据库的主要内容,如果未能解决你的问题,请参考以下文章
ANDROID - 如何从 sqlite 字段中分离 JSONObject 值
SQLite 和 Firebase 数据库之间的同步,当用户离线数据存储在 sqlite 和在线数据存储在 firebase 时
如何通过将地图切片图像保存到 sqlite 数据库来使用 osmdroid 实现离线地图?