簡體   English   中英

如何在從cordova創建的本機代碼中使用相同的android SQLite DB?

[英]How to use the same android SQLite DB in native code created from cordova?

我在cordova應用程序中設置了一個SQLite數據庫。 然后,我需要開發一個新的插件來讀取該數據庫。 那么,如何從本機代碼訪問從cordova創建的數據庫?

這就是我創建數據庫的方式:

var shortName = 'mydb1';
var version = '1.0';
var displayName = 'my database';
var mydb = openDatabase(shortName, version, displayName, 100000000);

我創建了一個名為“ student”的表並插入一些數據。 一切似乎都正常。 我什至可以查看回插入的數據。

現在,我需要使用Java開發一個插件,並且該插件需要讀取我剛剛創建的“學生”表。 這是我的代碼:

SQLiteDatabase mydatabase = openOrCreateDatabase("mydb1",MODE_PRIVATE,null);
Cursor resultSet = mydatabase.rawQuery("SELECT * FROM student", null);
resultSet.moveToFirst();

return resultSet.getString(0);

我上面的代碼產生以下錯誤:

android.database.sqlite.SQLiteException: no such table: student (code 1): , while compiling: SELECT * FROM student
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such table: student (code 1): , while compiling: SELECT * FROM student)

請幫忙

附加信息:

  • 我已經檢查了我的Java代碼上的包名稱,我非常確定即時消息使用的是正確的
  • 這是一個使用cordova 2.2.0的非常古老的應用程序

通過使用數據庫路徑解決了它。 似乎cordova使用的數據庫路徑是不同的。 因此,我需要使用數據庫的完整路徑。 在這里我如何解決

SQLiteDatabase mydatabase = openOrCreateDatabase("/data/data/com.my.packagename/app_webview/databases/file__0/1",MODE_PRIVATE,null);

我實際上必須扎根我的設備才能真正找到此確切路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM