2011-06-11 60 views
3

有些人希望将我的Android开源软件移植到Blackberry和PC(也使用SQLite)。SQLite操作系统抽象层?

我将UI代码从域/数据库代码中分离出来。但下一个问题,域/数据库代码包含像这样的进口:

import android.database.Cursor; 

...这使得它不便携。

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

注意:我使用SQLite特有的功能,所以ORM或数据库抽象层不会这样做。

回答

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类,并且不会抛出异常。

+0

SQLite特有的功能:从文件加载数据库。其余的几乎是标准(但高级)的SQL。 – 2011-06-12 00:35:05

+0

我的书架支持。您只需提供文件名称,然后在Android中处理其余部分。您也可以执行本机查询(但我们的查询构建器也可以构建高级查询)。如果您想使用我们的ORM解决方案,我可以为您提供帮助。 – 2011-06-12 00:39:43