您的位置:首頁技術文章
文章詳情頁

Android Room的使用詳解

瀏覽:2日期:2022-09-19 14:48:10

官網介紹: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
相關文章:
国产综合久久一区二区三区