美文网首页
2023-02-24

2023-02-24

作者: Zz橙淞 | 来源:发表于2023-04-05 14:15 被阅读0次

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)

相关文章

  • 羊太岁语录491( 花也不再是当年的花)

    花也不再是当年的花,不再与风雪笑看天涯。 2023-02-24

  • 2023-02-24

    昨晚又没睡好。就是想太多。信息扑面而来,但还有更多未知的信息,于是就想想想,本以为会想想想自然睡着,哪知越来越清醒...

  • 2023-02-24

    失败中在自怨自艾中出不来,其实是没有必要的,基本上属于一个认知错误。 一个结果的构成因素很多,万事万物都构成了这件...

  • 2023-02-24

    这明明是一个释放个性的时代,但是我却变得更加不自由,做着自己并不喜欢的工作,和一些相处的并不怎么愉快的人朝夕相处。...

  • 2023-02-24

    有什么不一样的呢,天还是那个天,地还是那个地,人还是那些人,事儿也还是那些事儿,只是不再关注,不再计较,不再争辩,...

  • 2023-02-24

    马上进入30的我也成功步入中年人的行列了。虽然很不想承认自己已经快30了,但是岁月催人老脸上再也没有20几岁的无忧...

  • 2023-02-24

    第7单元克服阻碍咨询的因素 一、多话,是咨询中求助者或咨询师,大量叙述与咨询没有关系的内容,从而影响咨询效果,阻碍...

  • 2023-02-24

    早晨那会脑袋里胡思乱想,突然灵魂出体了。但这次不一样,我似乎学会了出体的诀窍,我太困了,还不想醒来,所以反复实验了...

  • 2023-02-24

    看到一篇写郭柯宇的文字,写她的曾经的婚姻、现在的生活…… “他们像是生活在平行时空的两个人,听不懂彼此的需求,融入...

  • 2023-02-24

    高三英语40-70 分数段同学提分秘籍 对于英语成绩在40-70分数段的小伙伴,已经无法跟上老师上课的教学进...

网友评论

      本文标题:2023-02-24

      本文链接:https://www.haomeiwen.com/subject/lfhtldtx.html