虽然Android提供了数据库帮助器,但是开发者在进行数据库编程时仍有诸多不便,比如每次增加一张新表,开发者都得手工实现以下代码逻辑:
1、重写数据库帮助器的onCreate方法,添加该表的建表语句;
2、在插入记录之时,必须将数据实例的属性值逐一赋给该表的各字段;
3、在查询记录之时,必须遍历结果集游标,把各字段值逐一赋给数据实例;
4、每次读写操作之前,都要先开启数据库连接;读写操作之后,又要关闭数据库连接;
上述的处理操作无疑存在不少重复劳动,数年来引得开发者叫苦连连。为此各类数据库处理框架纷纷涌现,包括GreenDao、OrmLite、Realm等等,可谓百花齐放。眼见SQLite渐渐乏人问津,谷歌公司干脆整了个自己的数据库框架名叫Room,该框架同样基于SQLite,但通过注解技术极大简化了数据库操作,减少了原来相当一部分编码工作量。
由于Room并未集成到SDK中,而是作为第三方框架提供,因此首先要修改模块的build.gradle文件,往dependencies节点添加下面两行配置,表示导入指定版本的Room库:
implementation 'androidx.room:room-runtime:2.2.5'
annotationProcessor 'androidx.room:room-compiler:2.2.5'
导入Room库之后,还要编写若干对应的代码文件。以录入书籍信息为例,此时要对书籍信息表进行增删改查,则具体的编码过程分为下列五个步骤:
一、编写书籍信息表对应的实体类
假设书籍信息类名叫BookInf