我正在编写我希望有两个版本的应用程序 - 一个用于桌面(java 标准版),一个用于 android。
目前我正在研究数据库模型。为了让代码在两个版本中都能正常工作,第一个想法是跳过所有在两个平台之间不兼容的函数(不幸的是,Android 和桌面 Java 具有完全不同的类来管理 SQLite 数据库,即使某些方法相似)并且只使用纯原始 SQL 语句。
然而,当更深入时,我对这种方法有很多问题。
1)如何使用纯原始 SQL 语句存储 BLOB(类似于
insert into table (col1, col2) values (val1, [...... 100KB val 2])
有很多答案如何做到这一点。使用适用于 Android 的 ContentValues 类,但要么我必须创建自己的一组涵盖标准 Android/桌面 Java 类的类,要么将这个数据库层分为两个不同的版本。
2)如何以自动方式替换所有对sql语句具有特殊含义的字符,例如。“父亲的车” - ' 不允许直接放在 sql 语句中(请不要忘记纯原始 sql 语句)。
结论:
A) 你知道我上面的问题的答案吗?B)以这种方式工作是否值得(仅纯原始 sql 语句)?C)如果不是承认什么方法 - 创建我自己的一组用于操作的类,或者只是创建这个数据库层的两个不同版本?
顺便说一句,我可以理解 Android 有完全不同的 GUI 类,但是为什么他们为数据库等东西创建了完全不同的方法......