欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android Room的使用詳解

 更新時間:2021年04月13日 10:56:08   作者:一條魚和一片海  
這篇文章主要介紹了Android Room的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下

官網(wǎng)介紹:developer.android.google.cn/training/da…

Room 是在 SQLite 上提供了一個抽象層,以便在充分利用 SQLite 的強大功能的同時,能夠流暢地訪問數(shù)據(jù)庫。

Room 包含 3 個重要部分:

  • 數(shù)據(jù)庫:包含數(shù)據(jù)庫持有者,并作為應(yīng)用已保留的持久關(guān)系型數(shù)據(jù)的底層連接的主要接入點。
  • Entity:表示數(shù)據(jù)庫中的表。
  • DAO:包含用于訪問數(shù)據(jù)庫的方法。

基本使用步驟:

1、導(dǎo)入配置

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、創(chuàng)建表

    @Entity
    public class User {
        @PrimaryKey
        public int uid;

        @ColumnInfo(name = "first_name")
        public String firstName;

        @ColumnInfo(name = "last_name")
        public String lastName;
    }

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

3、創(chuàng)建Dao

包含訪問數(shù)據(jù)庫的一系列方法。

    @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);

        @Insert
        void insertAll(User... users);
        
        @Insert
        void insert(User user);

        @Delete
        void delete(User user);
    }

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

4、創(chuàng)建數(shù)據(jù)庫

    @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的使用詳解的詳細內(nèi)容,更多關(guān)于Android Room的使用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論