有些人希望將我的Android開源軟件移植到Blackberry和PC(也使用SQLite)。SQLite操作系統抽象層?
我將UI代碼從域/數據庫代碼中分離出來。但下一個問題,域/數據庫代碼包含像這樣的進口:
import android.database.Cursor;
...這使得它不便攜。
我猜許多其他開發人員都有同樣的問題,所以SQLite操作系統抽象層必須存在某處。你會建議什麼?
注意:我使用SQLite特有的功能,所以ORM或數據庫抽象層不會這樣做。
有些人希望將我的Android開源軟件移植到Blackberry和PC(也使用SQLite)。SQLite操作系統抽象層?
我將UI代碼從域/數據庫代碼中分離出來。但下一個問題,域/數據庫代碼包含像這樣的進口:
import android.database.Cursor;
...這使得它不便攜。
我猜許多其他開發人員都有同樣的問題,所以SQLite操作系統抽象層必須存在某處。你會建議什麼?
注意:我使用SQLite特有的功能,所以ORM或數據庫抽象層不會這樣做。
我目前正在開發一個ORM項目,尤其是Android。
https://github.com/ahmetalpbalkan/orman
你使用哪種特定的SQLite的功能?
也許你可以創建一個接口,既android.jar
和the_jar_for_blackberry.jar
所以編譯,你可以做類似的代碼
Database db = null;
if (environment is android){
db = new AndroidSQLiteDatabaseImpl();
} else {
db = new MyBlackberrySQLiteImpl();
}
,當這兩個類實現相同的接口,那麼你就不會在麻煩中。因爲如果你說
import android.database.Cursor
只有在AndroidSQLiteDatabaseImpl.java
,如果你不初始化它在所有,任何異常將被拋出。
你可以看看我們項目的源代碼。在構建時,我們使用android.jar
進行編譯,但是,當我們只發佈一個jar
文件時,所有桌面程序用戶都可以將它用於MySQL和本機SQLite。因爲他們不初始化AndroidSQLiteDtabase
類,並且不會拋出異常。
SQLite特有的功能:從文件加載數據庫。其餘的幾乎是標準(但高級)的SQL。 – 2011-06-12 00:35:05
我的書架支持。您只需提供文件名稱,然後在Android中處理其餘部分。您也可以執行本機查詢(但我們的查詢構建器也可以構建高級查詢)。如果您想使用我們的ORM解決方案,我可以爲您提供幫助。 – 2011-06-12 00:39:43