在Java中附加Sqlite数据库

在Java中附加Sqlite数据库,java,sqlite,jdbc,connection,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 newD

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

这是我的密码

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)


我做错了什么?

附加数据库命令需要一个文件名,但您给它一个
连接
对象的表示形式


您不需要
connOldDb
,只需使用
dbName

我看到两种可能性:1)表不存在,在这种情况下,您需要创建它;2)您的数据库或表名中存在键入错误。谢谢您的回答。桌子在那儿。我在连接后用一个结果集对它进行了测试。但是你说的输入错误是什么意思呢?输入错误的意思是,你应该仔细检查
SendeDS
实际上是你试图查询的表的名称。由于我是以英语为母语的人,我认为您可能指的是
SendDS
SenderDS
。当你知道应该是什么的时候,这样的打字错误很容易被忽视。我只是建议你仔细检查一下。非常感谢。这很简单,而且很好用。这是我的新代码:connNewDb.prepareStatement(“附加数据库””+dbName+“'AS fromDB”).execute();你甚至需要打开与旧数据库的连接吗?@Tacitus86引用答案,“你不需要
connOldDb
”。