Skip to main content

App Inventor 2練習:微型資料庫(TinyDB)

 

TinyDB(微型資料庫)元件

 

App Inventor 所寫的變數離開APP後,下次再啟動APP,變數資料就會消失。TinyDB可讓程式在重新啟動時繼續存取之前所寫的資料,例如您可以保存遊戲的最高分排行榜等。

TinyDb是不可見元件,用來儲存資料。只有「方法」(Method),沒有「屬性」(Properties)或「事件」(Events)。非關聯式資料庫,而是一種鍵值儲存的NoSQL資料庫,不需先定義各欄位的型態就可儲存資料。資料庫儲存的每筆項目如同「標籤」(tag)名稱(key)和對應值(value),只能用key取出值,或依據鍵來儲存值或依據鍵刪除資料

不同資料項目是根據標籤(tag)來儲存。每當儲存一筆資料時,您需要指定這筆資料的標籤。因此您可依據這個標籤來取用這筆資料。如果某個標籤下沒有任何資料,則回傳值為一個空的字串。

每個應用程式只能有一個資料存儲區。如果您有多個 TinyDB 元件,它們將使用相同的資料存儲區。再者,每個應用程式都有它專屬的資料存儲區,因此無法使用 TinyDB 元件讓 Android 裝置上的兩個不同應用程式彼此傳遞資料。

 

 

微型資料庫的使用方式

微型資料庫的「方法」(Method)有以下五種:

1.將微型資料庫中所有的標籤資料傳回成一份「清單」

2.取得指定標籤下的資料,「標籤」參數必須是為文字字串;如果其下沒有任何資料,則傳回「無標籤時之回傳值」右邊的字串。

3.在指定標籤下的儲存一筆資料,「標籤」的參數必須是為文字字串;「儲存值」 可以為字串或清單。

4.清除所有TinyDB內儲存的資料:

5.清除標籤,tag 參數必須是為文字字串

 

練習:用微型資料庫來儲存姓名

 

在Android手機上利用App Inventor 2跟微型資料庫,設計一個小程式,可以儲存並修改自己的姓名,下次執行時會顯示「歡迎您,○○○」的字樣。

 

畫面編排:

 

程式設計:

 

1.先設計當使用者在「文字輸入盒1」輸入名字,並按下「按鈕1」之後,會觸發一個事件,將名字寫入到「微型資料庫1」的「姓名」標籤裡面,並在「標籤2」顯示「儲存成功」。

 

2.新增一個「當Screen1.初始化」的事件,即APP每次執行時都會觸發的事件。在該事件中需呼叫「微型資料庫1」來取得「姓名」標籤裡面的文字,如果沒有文字則回傳「這是您第一次使用」。

 

執行畫面:

 

1.第一次執行後,因為沒有「姓名」的資料,所以會顯示第一次使用的訊息。

輸入姓名後按下「儲存」,會顯示「儲存成功」:

2.中斷MIT AI2 Companion並重新連線後,可看到歡迎您的後面出現剛才儲存的姓名。

如果再次輸入其他姓名並儲存,下次執行時就會出現新輸入的姓名(覆蓋掉原來的「姓名」標籤資料)。