如何将其存储到SQLite Android中?

时间:2014-01-24 13:58:44

标签: android sqlite storage

嘿所以我是使用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()
        }

另外,对于字母的顺序,我希望能够说明该订单也适用于其他语言的字母。

1 个答案:

答案 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存储的数据)。