【发布时间】:2013-09-13 16:53:24
【问题描述】:
我正在编写应用程序,我希望有两个版本 - 一个用于桌面(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 类,但为什么他们为数据库等东西创建了完全不同的方法......
【问题讨论】: