android數據庫的操作和WEB類是,都是增刪改查,但是android數據庫操作的代碼遠比WEB的代碼要少,而且簡單不用寫。如果有不懂請看代碼注釋
1、用entity、dao、database創建數據庫
entity:是一個實體類
dao:是一個接口(interface),用來對數據庫經常操作
database:繼承RoomDatabase,數據庫。
代碼:看代碼注釋
entity:
package com.example.roomtest; import androidx.room.ColumnInfo; import androidx.room.Entity; import androidx.room.PrimaryKey; @Entity // 實體類 public class Word { @PrimaryKey(autoGenerate = true) // 將id設置為主鍵,並且自增 private int id; @ColumnInfo(name = "English") // 設置每列的名稱 private String English_word; @ColumnInfo(name = "Chinese") private String Chinese_meaning; // 主鍵不用構造函數 public Word(){} public Word(String english_word, String chinese_meaning) { English_word = english_word; Chinese_meaning = chinese_meaning; } public void setId(int id){ this.id = id; } public int getId() { return id; } public String getEnglish_word() { return English_word; } public void setEnglish_word(String english_word) { English_word = english_word; } public String getChinese_meaning() { return Chinese_meaning; } public void setChinese_meaning(String chinese_meaning) { Chinese_meaning = chinese_meaning; } }
Dao:
package com.example.roomtest; import androidx.room.Dao; import androidx.room.Delete; import androidx.room.Insert; import androidx.room.Query; import androidx.room.Update; import java.util.List; @Dao // 訪問數據庫操作的接口 Database access object public interface WordDao { //我們所有對數據庫的操作都在Dao里聲明 @Insert // 這些修飾詞會在編譯時候生成代碼 void insertWords(Word... words); // 如果是一個參數就寫 Word word,多個參數就這樣寫 @Update void updataWords(Word... words); @Delete void deleteWords(Word... words); @Query("DELETE FROM WORD") void deleteAllWords(); @Query("SELECT * FROM WORD ORDER BY ID DESC") // 獲取所有的WORD,並且按照id降序排序 List<Word> getAllWords(); }
Database:
package com.example.roomtest; import androidx.room.Database; import androidx.room.RoomDatabase; /* 這里有個參數,第一個參數entities是一個集合,因為只有一個實體類,如果有多個可以逗號隔開 第二個參數是version(版本):每一次數據庫的結構發生改變,版本都得改變 第三個參數是生成數據庫表:這里先選擇false */ @Database(entities = {Word.class},version = 1,exportSchema = false) public abstract class WordDatabase extends RoomDatabase { public abstract WordDao getWordDao(); }
Activity:
package com.example.roomtest; import androidx.appcompat.app.AppCompatActivity; import androidx.room.Room; import androidx.room.RoomDatabase; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import org.w3c.dom.Text; import java.util.List; public class MainActivity extends AppCompatActivity { WordDatabase wordDatabase; WordDao wordDao; TextView textView; Button buttonInsert,buttonDelete,buttonUpdata,buttonwClear; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wordDatabase = Room.databaseBuilder(this, WordDatabase.class,"word_database") .allowMainThreadQueries().build(); // 強制讓它在主線程運行 wordDao = wordDatabase.getWordDao(); textView = findViewById(R.id.textView); buttonInsert = findViewById(R.id.button_insert); buttonDelete= findViewById(R.id.button_delete); buttonUpdata = findViewById(R.id.button_updata); buttonwClear = findViewById(R.id.button_clear); // 插入 buttonInsert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Word word1 = new Word("Hello", "你好"); Word word2 = new Word("World", "世界"); wordDao.insertWords(word1,word2); updataView(); } }); // 清空 buttonwClear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { wordDao.deleteAllWords(); updataView(); } }); // 修改 buttonUpdata.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Word word = new Word("Thanks","謝謝"); word.setId(29); wordDao.updataWords(word); updataView(); } }); // 刪除 buttonDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Word word = new Word("aa", "bb"); word.setId(30); wordDao.deleteWords(word); updataView(); } }); } // 更新界面 void updataView(){ List<Word> list = wordDao.getAllWords(); StringBuilder text = new StringBuilder(); for(int i = 0;i<list.size();i++){ Word word = list.get(i); text.append(word.getId()).append("、").append(word.getEnglish_word()).append(":").append(word.getChinese_meaning()).append('\n'); } textView.setText(text); } }
運行結果:點擊可以執行相應功能。這是最基礎的功能。

