Detailed Explanation of Android Room

  • 2021-12-12 05:41:30
  • OfStack

Directory 1, Import Configuration 2, Create Table 3, Create Dao 4. Create a database 5, using

Official website introduction: developer. android. google. cn/training/da …

Room provides an abstraction layer on SQLite, so that it can access the database smoothly while making full use of the powerful functions of SQLite.

Room contains three important parts:

Database: Contains the database holder and serves as the primary access point for the underlying connections that apply persisted relational data. Entity: Represents a table in a database. DAO: Contains methods for accessing the database.

Basic use steps:

1. Import configuration


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. Create a table


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

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

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

Reference: developer. android. google. cn/training/da …

3. Create Dao

Contains 1 series of methods for accessing a database.


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

Reference: developer. android. google. cn/training/da …

4. Create a database


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

5. Use


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

The above is the Android Room use details, more information about the use of Android Room please pay attention to other related articles on this site!


Related articles: