java - 在 Java 中附加 Sqlite 数据库

标签 java sqlite jdbc connection

我在附加数据库并将所有行从附加数据库插入主数据库时遇到问题。

这是我的代码。

public void selectOldDb(String dbName) throws Exception {
    createNewDB();
    Class.forName("org.sqlite.JDBC");

    Connection connOldDb = DriverManager.getConnection("jdbc:sqlite:"+ dbName);
    String newDbName = getDirToNewDb();

    newDbName = newDbName + "auftraege.db";
    Connection connNewDb = DriverManager.getConnection("jdbc:sqlite:"+ newDbName);

    connNewDb.prepareStatement("ATTACH DATABASE \"" + connOldDb + "\" AS  fromDB").execute();

    connNewDb.prepareStatement("INSERT INTO main.auftraege  SELECT * FROM fromDB.SendeDS").execute();

    connNewDb.close();
    connOldDb.close();
}

当我尝试插入时出现此错误。

[SQLITE_ERROR] SQL error or missing database (no such table: fromDB.SendeDS)

我做错了什么?

最佳答案

ATTACH DATABASE 命令需要一个文件名,但您给它的是 Connection 对象的表示。

您不需要 connOldDb,只需使用 dbName 即可。

关于java - 在 Java 中附加 Sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13130166/

相关文章:

sqlite - 跨多台服务器复制sqlite数据库的方法

database - SQLite 仅当值不为空时更新列

java - com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Communications link failure

java - 如何在 Android 上选中复选框时将项目添加到 List<Integer> 中

java - 选择流的序列

java - 带有圆角保留阴影的 JTextField

java - 无法从 JavaFX 应用程序连接到远程 MySQL 数据库

Java:声明带有字符串参数的方法

ios - SQLite 错误 : EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, 子代码 = 0x0) -iOS

java - JDBC 无法解析为 Eclipse 中的变量