2014-01-24 45 views
0

嘿所以我是新來的使用sql dbs,(在這裏的mongodb/nosql粉絲)...我試圖在Android上創建一個應用程序,並存儲通常存儲在設備上的網站數據庫的信息,從什麼我明白我應該使用SQLite? (任何異議都讓我知道)。當想要在網站上顯示信息時,我可以打電話給我,或者我可以在活動屏幕上直接查詢電話嗎?如何將此存儲到SQLite Android?

最後,這是一個信息的例子,我想知道我將如何存儲,因爲我聽說它只接受整數,字符串和雙打?

下面是需要被存儲在數據庫信息:

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

我不確定你的意思是「想要顯示一個wesbite的信息,我會調用一個get」,因爲SQLite數據庫將存儲在屬於你的應用程序的沙盒位置,你不會做HTTP請求,但直接與數據庫通話。

我可以建議看看:android.database.sqlite.SQLiteOpenHelper並將其擴展爲爲最常見的CRUD操作創建android.database.sqlite.SQLiteDatabase的包裝。

雖然SQLite在數據類型(和查詢操作)方面更受限於全功能SQL,但我發現它對於大多數數據操作來說已經足夠了。對於複雜的對象/嵌套值(比如你在問題中描述的「屬性」屬性),我會將這些類型的數據序列化爲一個String/JSON,並將它重新組裝回實際的Java Array/Object中數據庫。

我更喜歡將記錄視爲實體,並創建一個模型(擴展SQLiteOpenHelper實現),該模型包裝QSL CRUD函數以使用Java對象並將它們轉換爲SQLite數據庫支持的數據類型(即創建一個抽象層,例如接受Java值的「saveRecord」Object描述了您在問題中發佈的屬性,但在內部將其轉換爲更友好的存儲格式,同樣,返回Java值的「getRecord」創建Object來自存儲的數據)。

+0

確實沒問題,所以不需要獲取類型的請求。我該如何將數據序列化爲json?是最好的只是序列化整個對象爲JSON,然後反序列化...我必須對序列化方法的問題是,我想查詢數據庫的單詞,例如,如果有人搜索「你好」拉出單詞[ 0],而沒有拉出整個文件,其中將有1000個單詞存儲在其中... – Lion789

+0

好的,請注意,即使對於序列化文本,您也可以使用LIKE'%keyword%' - type語句通過關鍵字查找記錄。但我想強調的是,它取決於你的數據庫體系結構實際存儲的正確方法是什麼,例如,可以使用逗號分隔值來代替數組中的嵌套對象的單詞...其他情況可能需要一個單獨的表格連接單詞與相關記錄等。 –

+0

那麼這就是我想弄清楚的 - 這裏有一個新的問題,使事情更簡單的回答,我會標記你的答案,但我正在尋找更多具體的答案,因爲我是新的整個SQL的東西... http://stackoverflow.com/questions/21335332/how-to-store-an-object-nested-in-an-array-in-sqlite-android – Lion789

相關問題