SQLite OS抽象层?

时间:2011-06-11 16:12:50

标签: java android sqlite portability

有些人希望将我的Android开源软件移植到Blackberry和PC(也使用SQLite)。

我将UI代码与域/数据库代码分开。但是下一个问题是,域/数据库代码包含这样的导入:

import android.database.Cursor;

...这使得它不便携。

我猜许多其他开发人员都有同样的问题,所以SQLite操作系统抽象层必须存在于某个地方。你会建议什么?

注意:我使用特定于SQLite的功能,因此ORM或数据库抽象层不会这样做。

1 个答案:

答案 0 :(得分:3)

我目前正在开发一个ORM项目,特别是针对Android。

https://github.com/ahmetalpbalkan/orman

您使用哪些特定于SQLite的功能?

也许您可以创建一个界面,使用android.jarthe_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类,所以不会抛出任何异常。