Android数据库-Room框架

1、阶段一

数据库的操作一般放在子线程中进行,因为主线程是UI线程,写在主线程中可能出错。这一阶段主要讲Entity、Dao、Database,实现一个数据库的基本操作。添加依赖
Android数据库-Room框架_第1张图片
Entity创建
Android数据库-Room框架_第2张图片
Dao(Database access object)创建
Android数据库-Room框架_第3张图片
Database创建
Android数据库-Room框架_第4张图片
MainActivity中通过按钮调用增删改查操作
Android数据库-Room框架_第5张图片
Android数据库-Room框架_第6张图片
Android数据库-Room框架_第7张图片
注:系统会帮我们生成WordDao_Impl.java,所以Room框架还是很方便的。

2、阶段二

这一阶段主要讲AsyncTask 和Repository,对阶段一进行四个方面的完善。第一,引入LiveData,不用每次都调用updateView();第二,将DataBase类修改为singleton 单例模式,保证其只有一个实例;第三,引入AsyncTask,后台执行子线程;第四,引入ViewModel,来管理界面数据,使得MainActivity里面的数据得到精简。

改善一
Android数据库-Room框架_第8张图片
Android数据库-Room框架_第9张图片
改善二
Android数据库-Room框架_第10张图片
注:可以添加synchronized关键字,进一步加强singleton强度,保证当有多个客户端访问INSTANCE时,采用排对机制,保证只会有一个INSTANCE生成。

改善三
Android数据库-Room框架_第11张图片
Android数据库-Room框架_第12张图片
改善四
Android数据库-Room框架_第13张图片
Android数据库-Room框架_第14张图片
Android数据库-Room框架_第15张图片
此时,已经基本修改完成。但是ViewModel 的职责是管理界面的数据,数据的获取不应该属于ViewModel,如插入、修改数据等。我们应该创建仓库类,来实现对数据的直接操作。

创建WordRepository

这个类的职责就是获取数据,如本地数据库、或者云端数据库等。
Android数据库-Room框架_第16张图片
Android数据库-Room框架_第17张图片

3、阶段三

使用RecyclerView 呈现列表数据,强调资源的回收,就是滚动出屏幕的视图就会被回收,重复使用,提高资源使用。主要效果为,可以插入多条信息,然后利用RecyclerView 显示在页面上,呈现两种效果,一种是用普通的cell组成,一种是card 形式呈现,外观很相似。两种可以相互切换。

效果图,第一张是普通cell组成,第二张是card cell 组成。
Android数据库-Room框架_第18张图片
Android数据库-Room框架_第19张图片

创建普通cell 单元显示列表信息
Android数据库-Room框架_第20张图片
效果如下图,这是一个cell。

MainActivity.java内容
Android数据库-Room框架_第21张图片
Android数据库-Room框架_第22张图片
Android数据库-Room框架_第23张图片
添加点击后出现波纹效果

适配器编写
Android数据库-Room框架_第24张图片
Android数据库-Room框架_第25张图片

4、阶段四

数据库结构的改变与版本的迁移

如果数据库需要添加新的一列,需要进行版本迁移,如下图,但是删除某一列时,由于SQLite是轻量级的数据库,不具备Drop 关键字,所以删除列操作比较麻烦。

数据库层面的修改
Android数据库-Room框架_第26张图片
Android数据库-Room框架_第27张图片
UI界面修改

添加一个switch 按钮,点击可以选择是否显示中文意思。

修改适配器
Android数据库-Room框架_第28张图片
Android数据库-Room框架_第29张图片
修改MainActivity.java
Android数据库-Room框架_第30张图片
结束!

你可能感兴趣的:(Android开发)