实现“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进行表存对象的操作。希望这篇教程对你有所帮助!