jetPack之Room的使用,使用DataBase Navigator去查看数据库

1,273 阅读1分钟

一、Room的使用涉及到三个脚色

1.表的创建

package com.lzl.jectpackdemo;

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

@Entity
public class Student {
    @PrimaryKey(autoGenerate = true)
    private int uid;

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

    @ColumnInfo(name = "pwd")
    private String pwd;

    @ColumnInfo(name = "address")
    private String address;

    public Student(String name, String pwd, String address) {
        this.name = name;
        this.pwd = pwd;
        this.address = address;
    }


    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student{" +
                "uid=" + uid +
                ", name='" + name + ''' +
                ", pwd='" + pwd + ''' +
                ", address='" + address + ''' +
                '}';
    }

}

2.Dao的创建

/**
 * 通过apt技术,生成实现类。
 */
@androidx.room.Dao
public interface Dao {

    @Insert
    void insert(Student... students);

    @Delete
    void delete(Student student);

    @Update
    void updata(Student student);

    @Query("select * from Student")
    List<Student> getAll();

    @Query("select * from Student where name like:name")
    Student findByName(String name);
}

3.数据库的创建

@Database(entities = {Student.class},version = 1,exportSchema = false)
public abstract class DataBase extends RoomDatabase {
    //暴漏dao
    public abstract Dao userDao();
}

二、使用方法

new Thread(new Runnable() {
    @Override
    public void run() {
       DataBase dataBase = Room.databaseBuilder(getApplicationContext(), DataBase.class,"MyDb").build();

        Dao dao = dataBase.userDao();
        dao.insert(new Student("TIANLONG","123","....."));
        dao.insert(new Student("TIANLONG1","123","....."));
        dao.insert(new Student("TIANLONG2","123","....."));

        List<Student> all = dao.getAll();
        Log.e("lzl",all.toString());
    }
}).start();

三、通过DataBase Navigator去查看数据库

1.通过plugin 去下载插件

image.png

2. 如果在这里找不到,可以通过离线下载

plugins.jetbrains.com/plugin/1800…

下载完成后直接把压缩包加入即可,重启就能使用。

image.png

image.png

3.从data/data/包名/database下的数据库三个文件下载到本地。

注意需要是英文路径,否则后续连接不上

4.如何使用插件Database Navigator,按图中操作。

image.png

image.png

image.png

image.png

image.png

image.png

四、MVVM的架构

image.png