我有一个工作的sqlite数据库,我已放在我的/ src文件夹中。 然后我去了Codename One网站并按照他们的文档示例
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: MyTable)
但是,当我运行该示例并尝试执行简单的选择查询时,我收到此错误...
ImportError: No module named 'sklearn'
我错过了一步吗?
由于
答案 0 :(得分:0)
您是否确实在执行时当前的工作目录是./src
?
尝试
db = Display.getInstance().openOrCreate("./src/MyDb.db");
或以绝对文件名打开:
db = Display.getInstance().openOrCreate("/path/to/src/MyDb.db");
答案 1 :(得分:0)
你可以尝试这个cn1lib https://github.com/shannah/cn1-data-access-lib
我已经使用过它并且它具有魅力,除了在同一个查询中不能用于2个表并且无法执行删除操作。
干杯
答案 2 :(得分:0)
感谢所有输入人员。
不幸的是,这些建议对我没有用。 但是我最终解决了它。
事实证明,我的主目录中有一个名为' .cn1 / database'的文件夹。一旦我将数据库放入这个文件夹就可以了。
两件事: 1]如果db不存在,那么它将创建它并将其放入此目录中 2]数据库不会出现在Netbeans的任何地方(不是我能看到的)
再次感谢
答案 3 :(得分:0)
一些SQLite应用程序附带一个"现成的"数据库。我们允许你 使用代码替换DB文件:
String path = Display.getInstance().getDatabasePath(“databaseName”);
然后,您可以使用FileSystemStorage类来编写内容 你的DB文件进入路径。请注意,它必须是有效的SQLite 文件!
重要提示: Javascript端口不支持getDatabasePath()。它 将始终返回null。
这对于需要与a同步的应用程序非常有用 中央服务器或作为一部分附带大型数据库的应用程序 他们的核心产品。
您依赖于在模拟器中有意义的路径,在您需要将资源复制到位置的设备中。查看实现它的SQL演示:https://www.codenameone.com/blog/sql-demo-revisited.html
答案 4 :(得分:0)
将数据库文件放入src文件夹后,使用以下代码将数据库复制到Codenameone存储,运行后数据库将复制到目录“.cn1 / database”
String DB_NAME = "DBNAME.db";
Database temp_db = Database.openOrCreate(DB_NAME); //To create an empty file before copy, otherwise Android will throw file not found exception
temp_db.close();
String p = Database.getDatabasePath(DB_NAME);
OutputStream o = FileSystemStorage.getInstance().openOutputStream(p);
InputStream i = Display.getInstance().getResourceAsStream(getClass(), "/" + DB_NAME);
Util.copy(i, o);
答案 5 :(得分:0)
这似乎不是一个完整的答案。
我正在通过演示,似乎缺少一些东西:
不应该构建任务将此db资源复制到正确的目标文件夹吗?否则部署如何工作? (如果数据库没有打包,那么它将如何部署?)没有应用程序无法运行