嘿所以我是使用sql dbs的新手,(这里是mongodb / nosql粉丝)......我正在尝试在Android上创建一个应用程序,并将通常存储在数据库中的信息存储在设备上的网站上,我明白我应该使用SQLite? (有任何异议让我知道)。当我想在网站上显示信息时,我会调用get或者我可以直接在活动屏幕上进行查询调用吗?
最后,这是一个信息的例子,我想知道如何存储它,因为我听说它只接受整数,字符串和双精度?
以下是需要存储的数据库信息:
Stored: {
id: 2322d2ej2j2k, (unique)
name: Animals, (unique)
languages: [english, spanish],
order: [a, b, c, d, e, f, ...],
words: [{english: hello, spanish: hola}, {english: thanks, spanish: gracias}, ...],
date_created: new Date()
}
另外,对于字母的顺序,我希望能够说明该订单也适用于其他语言的字母。
答案 0 :(得分:1)
我不确定你的意思是什么“想要在wesbite上显示信息我会称之为获取”,因为SQLite数据库将存储在属于你的app的沙盒位置,你不会发表HTTP请求,但直接与数据库交谈。
我可以建议查看:android.database.sqlite.SQLiteOpenHelper并对其进行扩展,以便为最常见的CRUD操作创建android.database.sqlite.SQLiteDatabase的包装器。
虽然SQLite在数据类型(和查询操作)中作为全面的SQL更加有限,但我发现它对于大多数数据操作来说已经足够了。对于复杂的对象/嵌套值(如您在问题中描述的“单词” - 属性),我将这些类型的数据序列化为String / JSON,并在从它读回时将其重新组装回实际的Java Array / Object中。数据库中。
我更倾向于将记录视为这种意义上的实体,并创建一个Model(扩展您的SQLiteOpenHelper实现),它包装QSL CRUD函数以使用Java Objects并将这些函数转换为SQLite数据库支持的数据类型(即创建一个抽象层,如“saveRecord”,它接受一个Java值Object描述了你在问题中发布的属性,但内部将其转换为更友好的存储格式,同样是“getRecord”,它返回一个Java值Object存储的数据)。