实现“Android room 表存对象”教程

1. 整体流程

flowchart TD
    A(创建Entity类) --> B(创建DAO接口)
    B --> C(创建Database类)
    C --> D(实现Room数据库操作)

2. 具体步骤

步骤一:创建Entity类

  • src/main/java/com/example/app目录下创建一个名为User.java的Java类,用来表示要在Room数据库中存储的对象。
@Entity(tableName = "users") // 定义Entity类,指定表名为users
public class User {
    @PrimaryKey(autoGenerate = true)
    private int id;
    
    @ColumnInfo(name = "name")
    private String name;
    
    @ColumnInfo(name = "age")
    private int age;
    
    // 省略getter和setter方法
}

步骤二:创建DAO接口

  • src/main/java/com/example/app目录下创建一个名为UserDao.java的Java接口,用来定义数据库操作方法。
@Dao
public interface UserDao {
    @Insert
    void insertUser(User user);
    
    @Query("SELECT * FROM users")
    List<User> getAllUsers();
    
    // 省略其他数据库操作方法
}

步骤三:创建Database类

  • src/main/java/com/example/app目录下创建一个名为AppDatabase.java的Java类,用来定义Room数据库。
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
    public abstract UserDao userDao();
    
    private static final String DATABASE_NAME = "app_database";
    
    private static AppDatabase instance;
    
    public static synchronized AppDatabase getInstance(Context context) {
        if (instance == null) {
            instance = Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, DATABASE_NAME)
                    .fallbackToDestructiveMigration()
                    .build();
        }
        return instance;
    }
}

步骤四:实现Room数据库操作

  • MainActivity.java或其他需要使用Room的Activity中,进行数据库操作。
AppDatabase db = AppDatabase.getInstance(this);

// 插入用户数据
User user = new User();
user.setName("Alice");
user.setAge(25);
db.userDao().insertUser(user);

// 查询所有用户数据
List<User> userList = db.userDao().getAllUsers();

关系图

erDiagram
    USER ||--o{ USER_DETAILS : has
    USER_DETAILS ||--|| USER : belongs to

通过以上步骤,你可以成功实现在Android中使用Room进行表存对象的操作。希望这篇教程对你有所帮助!