有些人希望将我的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