教你如何实现 Android Room SQLite

在现代 Android 开发中,使用 Room 来管理 SQLite 数据库是一个非常常见的做法。Room 提供了一种抽象层,可以让我们以更舒适的方式与数据库进行交互。本文将带领你一步一步实现一个简单的 Room 示例。

整体流程

在开始之前,我们先来看一下整个实现的流程。下表展示了实现 Android Room SQLite 的步骤:

步骤描述
1添加 Room 依赖
2创建数据实体类
3创建数据访问对象(DAO)
4创建数据库类
5使用数据库
6运行应用检查效果

步骤详解

步骤 1: 添加 Room 依赖

在你的 build.gradle 文件中,添加 Room 的依赖:

dependencies {
    def room_version = "2.5.0"

    // Room Components
    implementation "androidx.room:room-runtime:$room_version" // Room 主库
    annotationProcessor "androidx.room:room-compiler:$room_version" // 注解处理器
    
    // Kotlin扩展支持(如果使用Kotlin)
    implementation "androidx.room:room-ktx:$room_version" 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

这段代码添加了 Room 的运行时以及注解处理器和 Kotlin 扩展支持。

步骤 2: 创建数据实体类

创建一个数据实体类,用于代表数据库中的一条记录。例如,我们可以创建一个 User 类。

import androidx.room.Entity;
import androidx.room.PrimaryKey;

@Entity(tableName = "users") // 指定数据表名称
public class User {

    @PrimaryKey(autoGenerate = true) // 主键自动生成
    private int id;

    private String name;

    private String email;

    // 生成对应的构造函数、getters 和 setters
    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public String getEmail() {
        return email;
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
步骤 3: 创建数据访问对象(DAO)

DAO 是用来定义数据库操作的接口。

import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;

import java.util.List;

@Dao // 表示这是一个 DAO 接口
public interface UserDao {

    @Insert // 插入用户
    void insert(User user);

    @Query("SELECT * FROM users") // 查询所有用户
    List<User> getAllUsers();
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
步骤 4: 创建数据库类

创建一个数据库类,继承自 RoomDatabase

import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import android.content.Context;

@Database(entities = {User.class}, version = 1) // 数据库包含的实体与版本号
public abstract class AppDatabase extends RoomDatabase {

    public abstract UserDao userDao(); // 返回 DAO 接口

    private static AppDatabase INSTANCE;

    public static AppDatabase getDatabase(final Context context) {
        if (INSTANCE == null) {
            synchronized (AppDatabase.class) {
                if (INSTANCE == null) {
                    INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
                            AppDatabase.class, "my_database").build(); // 创建数据库
                }
            }
        }
        return INSTANCE;
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
步骤 5: 使用数据库

现在,我们可以在活动中使用 Room 数据库。

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    private AppDatabase db; // 数据库实例

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        db = AppDatabase.getDatabase(this); // 获取数据库实例

        // 插入数据示例
        new Thread(() -> {
            User user = new User("John Doe", "john@example.com");
            db.userDao().insert(user); // 插入用户
        }).start();
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
步骤 6: 运行应用检查效果

最后,运行你的应用并检查数据是否成功插入数据库。

实现 Android Room SQLite 的过程 User
1. 添加 Room 依赖
1. 添加 Room 依赖
User
添加必要的库依赖
添加必要的库依赖
2. 创建数据实体类
2. 创建数据实体类
User
创建 User 类
创建 User 类
3. 创建 DAO
3. 创建 DAO
User
定义 UserDao 接口
定义 UserDao 接口
4. 创建数据库类
4. 创建数据库类
User
实现 AppDatabase 类
实现 AppDatabase 类
5. 使用数据库
5. 使用数据库
User
在 MainActivity 中使用 DB
在 MainActivity 中使用 DB
实现 Android Room SQLite 的过程

结尾

通过以上步骤,你已经学会了如何在 Android 应用中使用 Room 来管理 SQLite 数据库。从添加依赖、创建实体类、DAO 到最终的数据库使用,这个流程让你可以更高效地进行数据存储与管理。希望这篇文章能够帮助你顺利入门 Android Room,如果有任何疑问,随时可以咨询!