1.Room入门小例子

这个示例展示了如何在Android应用中使用Room库来管理SQLite数据库。包括创建WordEntity实体类、WordDao数据访问接口以及WordDataBase抽象数据库类。在MainActivity中,实现了插入、更新、删除和查询数据的操作,并实时更新UI显示。
摘要由CSDN通过智能技术生成

首先先导入依赖

	def room_version = "2.2.0"
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"
    // optional - Test helpers
    testImplementation "androidx.room:room-testing:$room_version"

写实体类 WordEntity

package com.example.myroombasic;

import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;

@Entity
public class WordEntity {

    @PrimaryKey(autoGenerate = true)
    private int id;

    @ColumnInfo(name = "english word")
    private String word;

    private String chineseMeaning;

    public WordEntity(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 chineseMeaning;
    }

    public void setChineseMeaning(String chineseMeaning) {
        this.chineseMeaning = chineseMeaning;
    }

    @Override
    public String toString() {
        return "WordEntity{" +
                "id=" + id +
                ", word='" + word + '\'' +
                ", chineseMeaning='" + chineseMeaning + '\'' +
                '}';
    }
}

写数据库操作接口 WordDao

package com.example.myroombasic;

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
public interface WordDao {

    @Insert
    void insertWords(WordEntity...WordEntity);

    @Update
    void updateWord(WordEntity...WordEntity);

    @Delete
    void deleteWords(WordEntity...WordEntity);

    //删除全部  数据库名写实体类名就行了
    @Query("delete from wordentity")
    void deleteAllWords();

    //查询全部 数据库名写实体类名就行了
    @Query("select * from WordEntity order by id desc")
    List<WordEntity> getAllWords();
}

写创建数据库的抽象类

package com.example.myroombasic;

import androidx.room.Database;
import androidx.room.RoomDatabase;

@Database(entities = {WordEntity.class},version = 1,exportSchema = false)
public abstract class WordDataBase extends RoomDatabase {
    public abstract WordDao getWordDao();
}

主函数

package com.example.myroombasic;

import androidx.appcompat.app.AppCompatActivity;
import androidx.room.Room;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.List;

public class MainActivity extends AppCompatActivity {

    WordDataBase wordDataBase;
    WordDao wordDao;
    TextView textView66;
    String text;

    Button buttonInsert,buttonDelete,buttonClear,buttonUpdate;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //各个组件的初始化
        textView66 = findViewById(R.id.text66);
        buttonInsert = findViewById(R.id.buttonInsert);
        buttonClear = findViewById(R.id.buttonClear);
        buttonUpdate = findViewById(R.id.buttonUpdate);
        buttonDelete = findViewById(R.id.buttonDelete);

        //创建数据库
        // allowMainThreadQueries强迫在主线程运行
        //正常来说是不允许在主线程中运行的
        wordDataBase = Room.databaseBuilder(this,WordDataBase.class,"fuck")
                .allowMainThreadQueries()
                .build();

        wordDao = wordDataBase.getWordDao();

        //显示数据库的内容
        updateView();

        //插入按钮
        buttonInsert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                WordEntity wordEntity = new WordEntity("hello", "你好");
                WordEntity wordEntity1 = new WordEntity("world", "世界");
                wordDao.insertWords(wordEntity,wordEntity1);
                updateView();
            }
        });

        //清空按钮
        buttonClear.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                wordDao.deleteAllWords();
                updateView();
            }
        });

        //更新按钮
        buttonUpdate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                WordEntity wordEntity = new WordEntity("更改id为64的", "更改id为64的");
                wordEntity.setId(64);
                wordDao.updateWord(wordEntity);
                updateView();
            }
        });

        //删除按钮
        buttonDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                wordDao.deleteWords();
            }
        });


    }

    //更新视图
    void updateView(){
        text = "";
        List<WordEntity> allWords = wordDao.getAllWords();
        for (WordEntity allWord : allWords) {
            text += allWord.toString() + "  ";
        }
        textView66.setText(text);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H&&Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值