Jetpackのデータベース-Room
6866 ワード
RoomはJetpackが提供するデータベースフレームワークで、kotlin言語をサポートし、Rxjava呼び出し方式をサポートします.
Room使用依存 を追加データテーブルに対応するエンティティクラスを定義する を追加する必要があります.データテーブル操作クラス を定義する.データベースクラス を定義する を使用
Room使用
dependencies {
def room_version = "2.2.2"
implementation "androidx.room:room-runtime:$room_version"
// For Kotlin use kapt instead of annotationProcessor
annotationProcessor "androidx.room:room-compiler:$room_version"
}
@Entity(tableName = "videoUpload")
public class VideoUploadDBModel implements Serializable {
@NonNull
@PrimaryKey
public String uuid;
public String path;
public Long size;
public Integer status;
public String userId;
}
@Entity注記@Dao
interface VideoUploadDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(videoUploadDBModel: VideoUploadDBModel)
@Update(onConflict = OnConflictStrategy.REPLACE)
fun update(videoUploadDBModel: VideoUploadDBModel)
@Query("select * from videoUpload where uuid==:uuid")
fun query(uuid: String): List<VideoUploadDBModel>
@Query("select * from videoUpload")
fun queryAll(): List<VideoUploadDBModel>
@Query("delete from videoUpload where uuid==:uuid")
fun delete(uuid: String)
}
@Database(entities = [VideoUploadDBModel::class], version = 1)
abstract class VideoDatabase : RoomDatabase() {
abstract fun videoUploadDao(): VideoUploadDao
}
val database = Room.databaseBuilder(mContext, VideoDatabase::class.java, "fcat.db").build()
val videoUploadList = database.videoUploadDao().queryAll()