zoukankan      html  css  js  c++  java
  • Android Studio 之 ROM【1】, Entity,Dao,Database

    Android Studio 之 ROM, Entity,DAO,DataBase

    1.Entity 实体类

    package com.example.roombasic;
    
    import androidx.room.ColumnInfo;
    import androidx.room.Entity;
    import androidx.room.PrimaryKey;
    
    @Entity
    public class Word {
        //实体类
    
        //主键,自增长
        @PrimaryKey(autoGenerate = true)
        private int id;
    
        @ColumnInfo(name="englist_word")
        private String word;
    
        @ColumnInfo(name="chinese_meaning")
        private String chineseMeaning;
    
    
        public Word(String word, String chineseMeaning) {
            this.word = word;
            this.chineseMeaning = chineseMeaning;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getWord() {
            return word;
        }
    
        public void setWord(String word) {
            this.word = word;
        }
    
        public String getChineseMeaning() {
            return this.chineseMeaning;
        }
    
        public void setChineseMeaning(String chineseMeaning) {
            this.chineseMeaning = chineseMeaning;
        }
    }
    

      

    2.Dao  接口

    package com.example.roombasic;
    
    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 {
        @Insert
        void insertWords(Word ... words); //如果只插入一条记录,用long返回值,返回id
    
        @Update
        void updateWords(Word...words);
    
        @Delete
        void deleteWords(Word...words);
    
        @Query("Delete From WORD")
        void deleteAllWords();
    
        @Query("SELECT * FROM WORD ORDER BY ID DESC")
        List<Word> getAllWords();
    
    }
    

      

    3.Database 抽象类

    package com.example.roombasic;
    
    import androidx.room.Database;
    import androidx.room.RoomDatabase;
    
    @Database(entities = {Word.class},version = 1,exportSchema = false)  //如果有多个实体,再加上逗号后加实体.Class,这里版本比较重要,每次更新都要改变
    public abstract class WordDatabase extends RoomDatabase {
        //抽象类
        public abstract WordDao getWrodDao();
    }
    

      

    4.MainActity 类

    package com.example.roombasic;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.room.Room;
    
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        WordDatabase wordDatabase;
        WordDao wordDao;
        Button buttonInsert,buttonUpdate,buttonClear,buttonDelete;
        TextView textView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            wordDatabase = Room.databaseBuilder(this,WordDatabase.class,"word_database").allowMainThreadQueries().build();   //allowMainThreadQueries() 强制允许在主线程运行
            wordDao = wordDatabase.getWrodDao();
    
            textView = findViewById(R.id.textView);
            buttonInsert = findViewById(R.id.buttonInsert);
            buttonUpdate = findViewById(R.id.buttonUpdate);
            buttonClear = findViewById(R.id.buttonClear);
            buttonDelete = findViewById(R.id.buttonDelete);
    
    
            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);
                    updateView();
                }
            });
    
            buttonUpdate.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Word word = new Word("English","英语");
                    word.setId(23); //更新是用主键来更新的
                    wordDao.updateWords(word);
                    updateView();
                }
            });
    
            //删除所有的记录
            buttonClear.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    wordDao.deleteAllWords();
                    updateView();
                }
            });
    
            buttonDelete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Word word = new Word("English","英语");
                    word.setId(23); //删除也是用主键来更新的
                    wordDao.deleteWords(word);
                    updateView();
                }
            });
    
        }
    
        void updateView(){
            List<Word> list = wordDao.getAllWords();
            String text="";
            textView.setText(text); //先将 textView 清空
            for(int i=0;i<list.size();i++){
                Word word = list.get(i);
                text += word.getId() + ":" + word.getWord() + "=" + word.getChineseMeaning() + "
    ";
    
                textView.setText(text);
            }
        }
    
    }
    

      

  • 相关阅读:
    57.适合自己的就是最好的
    45.懂得放弃
    ASP.NET碎知识点
    app性能测试理论基础一篇
    记一次踩坑docker+Jenkins+python3.6.8+gitee
    IT测试人从浓密到稀疏的的发量之路
    一天基本上没什么效率
    如此复杂的心情,如此失落的感觉…
    String.Replace 方法 (String, String)
    《见与不见》原题《班扎古鲁白玛的沉默》 作者:扎西拉姆·多多
  • 原文地址:https://www.cnblogs.com/gfwei/p/11806025.html
Copyright © 2011-2022 走看看