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 objectpublic 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); }}
运行结果:点击可以执行相应功能。这是最基础的功能。
总结
以上是内存溢出为你收集整理的android----Room数据库的简单 *** 作(1)全部内容,希望文章能够帮你解决android----Room数据库的简单 *** 作(1)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)