IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android Jetpack组件之Room数据库使用 -> 正文阅读

[移动开发]Android Jetpack组件之Room数据库使用

前言

android jetpack发布已经很久了 可能自己年龄大了 学习慢了很多
最近项目有用到数据库 所以想学习一下room 之前一直用的郭神的litepal
room是基于sqlite封装的 相比sqlite肯定是方便使用!

1

google中国文档社区 关于room的说明

依赖什么的这里就不说了 主要是 整个架构和流程 说明一下

2

项目结构

1

1.Export 实体类

Export :创建实体类ExportBean,实体类名可作为查询时用的表名。


/**
 * Author by Lyu
 * Date on 2021/10/18-17:51
 * Description:创建实体类ExportBean,实体类名可作为查询时用的表名。
 */
@Entity
public class Export {

    @PrimaryKey(autoGenerate = true)
    @NonNull
    public int id;//自增长
    @NonNull
    public String exportName;//出货口名

}

2.interface RoomDao

创建数据访问接口(接口里面包含增删改查方法)
接口定义标明注解@Dao;插入数据标明@Insert注解;修改数据标明@update;删除数据标明@Delete注解;查询标明@Query注解;

/**
 * Author by Lyu
 * Date on 2021/10/18-17:56
 * Description:创建数据访问接口(接口里面包含增删改查方法)
 */

@Dao
public interface RoomDao {
    //插入
    @Insert
    void addExport(Export... exports);

    @Insert
    void addExport(Export export);

    //修改
    @Update
    void updateExport(Export export);

    //删除
    @Delete
    void deleteExport(Export export);

    //获取Export
    @Query("SELECT * FROM Export WHERE ExportName=:exportName")
    Export getExport(String exportName);

    //查询
    @Query("SELECT * FROM Export")
    List<Export> getExports();
}

3.MyDatabase

创建继承RoomDatabase抽象类的抽象类,命名为MyDatabase;entities包含与数据库关联的实体类列表,version是是数据库版本号。

/**
 * Author by Lyu
 * Date on 2021/10/18-18:11
 * Description:entities包含与数据库关联的实体类列表,version是是数据库版本号。
 */
@Database(entities = {Export.class}, version = 1)
public abstract class MyDatabase extends RoomDatabase {
   public abstract RoomDao exportDao();
}

4.ExportManager

创建User管理类,进行增加、删除、修改、查询用户信息:
官方原话提示:如果您的应用在单个进程中运行,则在实例化 AppDatabase 对象时应遵循单例设计模式。每个 RoomDatabase 实例的成本相当高,而您几乎不需要在单个进程中访问多个实例。

public class ExportManager {
    private static MyDatabase mDb;

    public static MyDatabase getInstance(Context context) {
        if (mDb == null) {
            mDb = Room.databaseBuilder(context,
                    MyDatabase.class,
                    "port.db")
                    .allowMainThreadQueries()
                    .build();
        }
        return mDb;
    }

    //新增
    public static synchronized void addExport(Context context, Export export) {
        getInstance(context).exportDao().addExport(export);
    }

    //查询
    public static synchronized Export getExport(Context context, String export) {
        return getInstance(context).exportDao().getExport(export);
    }

    //删除
    public static synchronized void deleteExport(Context context, Export export) {
        getInstance(context).exportDao().deleteExport(export);
    }

    //修改
    public static synchronized void updateExport(Context context, Export export) {
        getInstance(context).exportDao().updateExport(export);
    }

    //获取用户信息
    public static synchronized List<Export> getExports(Context context) {
        return getInstance(context).exportDao().getExports();
    }

}

实例化调用

 	    val bean = Export()
        val bean2 = Export()
        val bean3 = Export()
        bean.exportName = "出货口B"
        bean2.exportName = "出货口C"
        bean3.exportName = "出货口D"
        ExportManager.addExport(this, bean)
        ExportManager.addExport(this, bean2)
        ExportManager.addExport(this, bean3)

        val users: Export = ExportManager.getExport(this,"出货口B")
        Log.e("TAG","----------------${users.exportName}");

打印数据
在这里插入图片描述
利用SQliteStudio可视化工具 查看生成的.db文件
2

SQliteStudio 下载地址

sqlitestudio-3.3.3中文版下载地址

CSDN下载地址

room生成的db文件无法打开的原因

参考
Android Jetpack Room组件的使用无法查看到数据库表结构原因
参考
Android数据库room报错:You can either provide room.schemaLocation annotation processor argument解决方法

总结

学习是个不断的过程 虽然过程有点苦 但是忆苦思甜 结果是甜的!
keep up

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-20 12:36:02  更:2021-10-20 12:36:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:45:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码