用Java附加Sqlite数据库

时间:2012-10-29 21:48:57

标签: 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错误或缺少数据库(没有这样的表:   fromDB.SendeDS)

我做错了什么?

1 个答案:

答案 0 :(得分:3)

ATTACH DATABASE命令需要文件名,但您可以为其指定Connection对象。

您不需要connOldDb,只需使用dbName