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
3. Create Dao
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!