我有一个可用的 sqlite 数据库,它位于我的/src 文件夹中。 然后我进入 Codename One 网站并按照他们的文档示例进行操作
Database db = null;
Cursor cur = null;
try {
db = Display.getInstance().openOrCreate("MyDb.db");
if(query.getText().startsWith("select")) {
cur = db.executeQuery(query.getText());
int columns = cur.getColumnCount();
frmMain.removeAll();
if(columns > 0) {
boolean next = cur.next();
if(next) {
ArrayList<String[]> data = new ArrayList<>();
String[] columnNames = new String[columns];
for(int iter = 0 ; iter < columns ; iter++) {
columnNames[iter] = cur.getColumnName(iter);
}
while(next) {
Row currentRow = cur.getRow();
String[] currentRowArray = new String[columns];
for(int iter = 0 ; iter < columns ; iter++) {
currentRowArray[iter] = currentRow.getString(iter);
}
data.add(currentRowArray);
next = cur.next();
}
Object[][] arr = new Object[data.size()][];
data.toArray(arr);
frmMain.add(BorderLayout.CENTER, new Table(new DefaultTableModel(columnNames, arr)));
} else {
frmMain.add(BorderLayout.CENTER, "Query returned no results");
}
} else {
frmMain.add(BorderLayout.CENTER, "Query returned no results");
}
} else {
db.execute(query.getText());
frmMain.add(BorderLayout.CENTER, "Query completed successfully");
}
frmMain.revalidate();
} catch(IOException err) {
frmMain.removeAll();
frmMain.add(BorderLayout.CENTER, "Error: " + err);
frmMain.revalidate();
} finally {
Util.cleanup(db);
Util.cleanup(cur);
}
但是,当我运行示例并尝试执行简单的选择查询时,我收到此错误......
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: MyTable)
- 所以我添加了数据库
- 我使用了“openOrCreate”语句
我是否错过了一个步骤?
谢谢
最佳答案
您确定当前执行时的工作目录是 ./src
吗?
尝试
db = Display.getInstance().openOrCreate("./src/MyDb.db");
或使用绝对文件名打开:
db = Display.getInstance().openOrCreate("/path/to/src/MyDb.db");
关于java - 在 Codename One 应用程序中使用 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41244478/