android 使用Room数据库:
1、添加依赖:android7.0以上方式
dependencies {
def room_version = "2.3.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$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"
}
其中 def room_version = "2.3.0" 用于指定Room库的版本号,您可以根据自己的需求更改版本号。此外,根据您的项目,您可能不需要添加所有可选依赖项。
添加上述依赖项后,您就可以开始使用Room库了。
2、创建一个实体类(Entity)来表示你要在数据库中存储的数据。可以使用注解来指定表名、列名等信息,例如:
package com.example.kotlindemo.data
import androidx.room.Entity
import androidx.room.PrimaryKey
/**
- 2、创建一个实体类(Entity)来表示你要在数据库中存储的数据。可以使用注解来指定表名、列名等信息,例如:
- */
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val age: Int
)
3、创建一个数据访问对象(DAO)接口,它包含用于访问数据库的操作,例如插入、查询等。可以使用注解来指定操作的SQL语句,例如:
/**
-
3、创建一个数据访问对象(DAO)接口,它包含用于访问数据库的操作,例如插入、查询等。可以使用注解来指定操作的SQL语句,例如:
-
*/
@Dao
interface UserDao {/**
- 查询数据
使用@Query注解来定义查询数据的方法。例如: - */
@Query("SELECT * FROM users ")
fun getAllUsers():List<User>
/**
- 查询数据
使用@Query注解来定义查询数据的方法。例如: - */
@Query("SELECT * FROM users WHERE id = :userId")
fun getUserById(userId:Int): User
/**
- 插入数据
使用@Insert注解来定义插入数据的方法。例如: - */
@Insert
fun insertUser(user: User)
/**
*删除数据
使用@Delete注解来定义删除数据的方法。例如:- */
@Delete
fun deleteUser(user: User)
/**
- 更新数据
使用@Update注解来定义更新数据的方法。例如: - */
@Update
fun updateUser(user: User)
}
- 查询数据
4、创建一个数据库类,它包含用于获取DAO对象和管理数据库的方法。可以使用注解来指定数据库的版本号、表信息等,例如:
package com.example.kotlindemo.data
import androidx.room.Database
import androidx.room.RoomDatabase
import com.example.kotlindemo.interface
.UserDao
/**
- 4、创建一个数据库类,它包含用于获取DAO对象和管理数据库的方法。可以使用注解来指定数据库的版本号、表信息等,例如:
- */
@Database(entities = [User::class], version = 1)
abstract class MyAppDatabase :RoomDatabase() {
abstract fun userDao():UserDao
}
5、room 实现数据增删改查
在应用程序中创建一个单例实例来获取MyAppDatabase对象。例如:
val db = Room.databaseBuilder(
applicationContext,
MyAppDatabase::class.java,"myAppDatabase"
).build()
val userDao = db.userDao()
现在,你可以使用userDao对象来操作数据库了,例如:
1、insertUser插入数据
val users = userDao.getAllUsers();
userDao.insertUser(User(1,"Alice",25))
userDao.insertUser(User(2,"Jorge",35))
2、updateUser 更新数据
val user = userDao.getUserById(1)
user.age = 26
userDao.updateUser(user)
3、deleteUser 删除数据
val user = userDao.getUserById(1)
userDao.deleteUser(user)
4、查询数据getAllUsers/getUserById
使用@Query注解来定义查询数据的方法。例如:
val userDao = db.userDao()
val users = userDao.getAllUsers()
val user = userDao.getUserById(1)
网友评论