Android 怎么用java使用room
时间: 2023-09-17 18:06:33 浏览: 156
框架进行本地数据库操作?
可以通过以下步骤在 Android 中使用 Java 使用 Room 框架进行本地数据库操作:
1. 首先,根据需要在 build.gradle 文件中添加依赖项:
```
dependencies {
def room_version = "2.3.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// optional - Kotlin Extensions and Coroutines support for Room
implementation "androidx.room:room-ktx:$room_version"
// optional - RxJava2 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"
// optional - Test helpers
testImplementation "androidx.room:room-testing:$room_version"
}
```
2. 创建一个实体类来表示表格中的每一行,并使用 @Entity 注释进行注释:
```
@Entity(tableName = "users")
public class User {
@PrimaryKey
public int id;
@ColumnInfo(name = "first_name")
public String firstName;
@ColumnInfo(name = "last_name")
public String lastName;
@ColumnInfo(name = "email")
public String email;
// Getters and Setters, Constructors
}
```
3. 创建一个用于访问数据库的访问对象(DAO)接口,并使用 @Dao 注释进行注释以及定义需要执行的 SQL 语句,例如 SELECT、INSERT、UPDATE 和 DELETE 等:
```
@Dao
public interface UserDao {
@Query("SELECT * FROM users")
List<User> getAll();
@Query("SELECT * FROM users WHERE id=:id")
User getById(int id);
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(User user);
@Delete
void delete(User user);
}
```
4. 创建一个 Room 数据库类,并使用 @Database 注释进行注释,指定实体类和版本号,还可以提供一个抽象方法来从该类获取 DAO 实例:
```
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
```
5. 在应用程序中,使用以下代码创建数据库实例:
```
AppDatabase db = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, "database-name").build();
```
6. 然后,您可以使用从 DAO 获取实体的方法来使用数据库,例如:
```
UserDao userDao = db.userDao();
List<User> users = userDao.getAll();
```
希望这些步骤能帮助您使用 Java 和 Room 框架进行本地数据库操作。
阅读全文