您的位置:首页技术文章
文章详情页

Android Room的使用详解

【字号: 日期:2022-09-19 14:48:10浏览:3作者:猪猪

官网介绍:developer.android.google.cn/training/da…

Room 是在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。

Room 包含 3 个重要部分:

数据库:包含数据库持有者,并作为应用已保留的持久关系型数据的底层连接的主要接入点。 Entity:表示数据库中的表。 DAO:包含用于访问数据库的方法。

基本使用步骤:

1、导入配置

dependencies { def room_version = '2.2.5' implementation 'androidx.room:room-runtime:$room_version' annotationProcessor 'androidx.room:room-compiler:$room_version' // For Kotlin use kapt instead of annotationProcessor // optional - Kotlin Extensions and Coroutines support for Room implementation 'androidx.room:room-ktx:$room_version' // optional - RxJava support for Room implementation 'androidx.room:room-rxjava2:$room_version' // optional - Guava support for Room, including Optional and ListenableFuture implementation 'androidx.room:room-guava:$room_version' // Test helpers testImplementation 'androidx.room:room-testing:$room_version' }2、创建表

@Entity public class User {@PrimaryKeypublic int uid;@ColumnInfo(name = 'first_name')public String firstName;@ColumnInfo(name = 'last_name')public String lastName; }

参考:developer.android.google.cn/training/da…

3、创建Dao

包含访问数据库的一系列方法。

@Dao public interface UserDao {@Query('SELECT * FROM user')List<User> getAll();@Query('SELECT * FROM user WHERE uid IN (:userIds)')List<User> loadAllByIds(int[] userIds);@Query('SELECT * FROM user WHERE first_name LIKE :first AND ' + 'last_name LIKE :last LIMIT 1')User findByName(String first, String last);@Insertvoid insertAll(User... users);@Insertvoid insert(User user);@Deletevoid delete(User user); }

参考:developer.android.google.cn/training/da…

4、创建数据库

@Database(entities = {User.class}, version = 1) public abstract class AppDatabase extends RoomDatabase {public abstract UserDao userDao(); }5、使用

AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, 'database-name').build(); db.userDao().insert(new User());

以上就是Android Room的使用详解的详细内容,更多关于Android Room的使用的资料请关注好吧啦网其它相关文章!

标签: Android
相关文章: