我在Android应用程序使用的项目中使用SQLite。目前我正在使用android.database.sqlite
中提供的SQLite实现。
我想创建一个使用相同代码库的桌面应用程序。所以我需要将所有共享行为分成一个单独的可移植项目/ jar。
我的问题是我正在大量使用android.database.sqlite
。如果可能的话,我不想重新编写每个数据库访问调用以与JDBC兼容,或者在不使用android提供的SQLite的情况下使用它。
解决此问题,对现有代码的影响最小。我打算编写一个SQLite接口(与android.database.sqlite
兼容),共享代码将使用它...在android上它将由android.database.sqlite
简单地实现,而在桌面上它将通过某种方式实现毁坏SQLite通过JDBC来匹配android.database.sqlite
。
这很难实现,因为我经常提供Object[]
数组绑定到JDBC需要严格键入的预处理语句,而且我根本不熟悉JDBC。
有没有其他方法可以在Java中使用类似于android.database.sqlite
的SQLite,或者任何其他方法可以省去与重写许多数据库访问点相关的工作(和不可避免的调试)?
Disclamer:我从未尝试过使用JDBC。
简化问题:在java中使用SQLite的最佳方法是什么? JDBC,其他?
答案 0 :(得分:4)
我认为创建一个包装器是个好主意,但在开发和测试方面可能需要付出很多努力。也许你可以在谷歌上开始一个项目,并让更多的人参与其中。
另一方面,我相信谷歌代码上已有一个名为sqldroid的项目
答案 1 :(得分:1)
以下是我要做的事情:
在您的情况下,这意味着:
这样,您的应用程序将从正在使用的基础数据库中抽象出来。这将提高可移植性。
答案 2 :(得分:0)
您可以为您的域创建类似DataMapper的内容,以便将BCE模式扩展到BCDE。数据映射器的作用是从底层数据库技术中抽象出来,从而增加以后的重用