有些人希望将我的Android开源软件移植到Blackberry和PC(也使用SQLite)。
我将UI代码与域/数据库代码分开。但是下一个问题是,域/数据库代码包含这样的导入:
import android.database.Cursor;
...这使得它不便携。
我猜许多其他开发人员都有同样的问题,所以SQLite操作系统抽象层必须存在于某个地方。你会建议什么?
注意:我使用特定于SQLite的功能,因此ORM或数据库抽象层不会这样做。
答案 0 :(得分:3)
我目前正在开发一个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
类,所以不会抛出任何异常。