Netbeans 连接到 SQLite 时出现 SQLite 错误或缺少数据库(没有这样的表)
Posted
技术标签:
【中文标题】Netbeans 连接到 SQLite 时出现 SQLite 错误或缺少数据库(没有这样的表)【英文标题】:SQLite error or missing database (no such table) in Netbeans connection to SQLite 【发布时间】:2018-05-19 09:41:37 【问题描述】:尝试从 Netbeans 中的 Java 向 SQLite 文件执行插入(或选择)时,出现上述错误。我已经从 SQLite 数据库浏览器手动创建了 db 文件并将其放入源包中。下面是代码和日志:
public void DBInsertServerConfig(ServerConfig serverconfig) throws SQLException
Connection conn = DBConnect();
Statement statement = null;
conn.setAutoCommit(false);
statement = conn.createStatement();
String sql = "INSERT INTO serverconfig(ip,port,db_name,db_user,password,fcm_server_key) " +
"VALUES (?,?,?,?,?,?)"; //
try
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1,serverconfig.getIp());
pstm.setString(2,serverconfig.getPort());
pstm.setString(3,serverconfig.getDb_name());
pstm.setString(4,serverconfig.getDb_user());
pstm.setString(5,serverconfig.getPassword());
pstm.setString(6,serverconfig.getFcm_server_key());
//statement.execute(sql);
pstm.executeUpdate();
statement.close();
conn.commit();
conn.close();
数据库已正确打开,但似乎没有找到该表,尽管它存在。
compile:run:
Opened database successfully
org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such table: serverconfig)
BUILD SUCCESSFUL (total time: 9 seconds)
附件是来自 SQLite 数据库浏览器的 db 文件的屏幕截图:
我已经看到并尝试过其他帖子,例如 here,但我没有得到解决方案。
谁能帮我解决这个问题?
【问题讨论】:
您的 SQL 语句指示 6 个表字段,但您尝试提供 7 个参数 (?)。删除 PreparedStatement 参数之一 (?) 及其相关逗号。 是的,我看到了,打错了。但这不是问题。谢谢 您确定在复制数据库之前进行了文件/写入更改吗? @MikeT ,是的,我做到了。谢谢 【参考方案1】:我找到了答案,如果有人遇到同样的问题/困惑,我会发布。 当 url 路径指向项目根文件夹(在 src 之外)时,我已将我的 db 文件放在 src 包下。 netbeans 创建了一个空的 db 文件,当然它里面没有任何表。当您遵循未经其创建者测试的教程时,就会发生这种情况。 :D
【讨论】:
【参考方案2】:我用的例子是
Connection conn = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Tolga\\Documents\\NetBeansProjects\\dpmlzmtkb\\depom.sqlite");
这是错的。
我将 depom.SQLite 更改为 depom.db 并且它起作用了。据我了解,如果路径正确,NetBeans 会为给定路径创建另一个空 SQLite 数据库。
【讨论】:
【参考方案3】:请使用绝对路径,比如(在我的 Ubuntu 上)private static String url ="jdbc:sqlite:/home/yourname/study/eclipse/hk/ss.db";
起初我遇到和你一样的错误, 我可以在普通类中链接sql,但在servlet/jsp中不能
【讨论】:
以上是关于Netbeans 连接到 SQLite 时出现 SQLite 错误或缺少数据库(没有这样的表)的主要内容,如果未能解决你的问题,请参考以下文章
Qt 如何连接到 android OS 中现有的 SQLite 文件?
连接到 cloudera impala 环境时出现 Kerberos 错误