Parcourir la source

1.添加room数据库

王鹏鹏 il y a 2 ans
Parent
commit
83646fd5f4

+ 25 - 0
baselib/src/main/java/com/yingyangfly/baselib/db/AppDataBase.kt

@@ -0,0 +1,25 @@
+package com.yingyangfly.baselib.db
+
+import androidx.room.Database
+import androidx.room.Room
+import androidx.room.RoomDatabase
+import com.yingyangfly.baselib.BaseApplication
+
+@Database(entities = [QuestionsBean::class], version = 1)
+abstract class AppDataBase : RoomDatabase() {
+
+    abstract fun getQuestionsDao(): QuestionsDao
+
+    companion object {
+        val instance = Single.sin
+    }
+
+    private object Single {
+        //这里创建的是数据库 hcp 是对应数据库名称,其他所有(例如Questions)都是表
+        val sin: AppDataBase = Room.databaseBuilder(
+            BaseApplication.appContext,
+            AppDataBase::class.java,
+            "hcp.db"
+        ).allowMainThreadQueries().build()
+    }
+}

+ 23 - 0
baselib/src/main/java/com/yingyangfly/baselib/db/BaseDao.kt

@@ -0,0 +1,23 @@
+package com.yingyangfly.baselib.db
+
+import androidx.room.*
+
+@Dao
+interface BaseDao<T> {
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    fun insertAll(list: MutableList<T>)
+
+    @Delete
+    fun delete(element: T)
+
+    @Delete
+    fun deleteList(elements:MutableList<T>)
+
+    @Delete
+    fun deleteSome(vararg elements:T)
+
+    @Update
+    fun update(element: T)
+
+}

+ 26 - 0
baselib/src/main/java/com/yingyangfly/baselib/db/QuestionsBean.kt

@@ -0,0 +1,26 @@
+package com.yingyangfly.baselib.db
+
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+
+/**
+ * mmse试题bean
+ */
+@Entity(tableName = "Questions")
+data class QuestionsBean(
+    @PrimaryKey
+    val id: String,
+    val createBy: String,
+    val createTime: String,
+    val isJudge: String,
+    val orgCode: String,
+    val orgName: String,
+    val reviewDesc: String,
+    val reviewItem: String,
+    val reviewScore: String,
+    val reviewType: String,
+    val type: String,
+    val updateBy: String,
+    val updateTime: String,
+    val viewType: String
+)

+ 26 - 0
baselib/src/main/java/com/yingyangfly/baselib/db/QuestionsDao.kt

@@ -0,0 +1,26 @@
+package com.yingyangfly.baselib.db
+
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import androidx.room.Query
+
+@Dao
+interface QuestionsDao : BaseDao<QuestionsBean> {
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    fun insert(element: QuestionsBean)
+
+    @Query("select * from Questions")
+    fun getAllQuestions(): MutableList<QuestionsBean>
+
+    @Query("select * from Questions where id = :id")
+    fun getQuestion(id: Int): QuestionsBean
+
+    @Query("select * from Questions order by id desc ")
+    fun getAllByIdDesc(): MutableList<QuestionsBean>
+
+    @Query("delete from Questions")
+    fun deleteAll()
+
+}