当前位置: 首页 > news >正文

自适应网站制作简创网络网站建设项目规划书社团宣传

自适应网站制作简创网络,网站建设项目规划书社团宣传,网站在百度上搜不到,广州竞价外包目录 1、SQLite数据库 目的: 基本操作: 缺点: 解决: 2、ROOM持久性库 目的: 优点: 导入依赖: 主要组件: ​编辑 使用步骤: a.定义数据实体 b.定义数据访问对象(接…

目录

1、SQLite数据库

目的:

基本操作:

缺点:

解决:

2、ROOM持久性库

目的:

优点:

导入依赖:

主要组件:

​编辑

使用步骤:

a.定义数据实体

b.定义数据访问对象(接口)

c.定义数据库类

d.实例化并操作数据库


1、SQLite数据库

目的:

保存重复数据&结构化数据

基本操作:

  • 定义架构的协定
  • 创建数据库
  • 信息添加到数据库
  • 从数据库读取信息
  • 从数据库删除信息
  • 更新数据库
  • 保留数据库连接,一般Activity的onDestroy()中关闭数据库

缺点:

android.database.sqlite  软件包提供Android上使用数据库所需的API,但是API级别较低

  • 没有针对原始SQL查询的编译时验证,耗时又易错
  • 需要使用大量样本代码在SQL查询和数据对象之间转换

解决:

强烈建议使用Room持久性库作为抽象层访问SQLite数据库中信息

2、ROOM持久性库

目的:

将数据保存到本地数据库

在SQLite上提供一个抽象层,以便充分利用SQLite&流畅访问数据库

优点:

  • 提供针对SQL查询的编译时验证
  • 提供方便注释,可最大限度减少重复和容易出错的代码样板
  • 简化数据库迁移路径

导入依赖:

讲下面依赖项添加到build.gradle文件

dependencies {val room_version = "2.6.1"implementation("androidx.room:room-runtime:$room_version")annotationProcessor("androidx.room:room-compiler:$room_version")// To use Kotlin annotation processing tool (kapt)kapt("androidx.room:room-compiler:$room_version")// To use Kotlin Symbol Processing (KSP)ksp("androidx.room:room-compiler:$room_version")// optional - Kotlin Extensions and Coroutines support for Roomimplementation("androidx.room:room-ktx:$room_version")// optional - RxJava2 support for Roomimplementation("androidx.room:room-rxjava2:$room_version")// optional - RxJava3 support for Roomimplementation("androidx.room:room-rxjava3:$room_version")// optional - Guava support for Room, including Optional and ListenableFutureimplementation("androidx.room:room-guava:$room_version")// optional - Test helperstestImplementation("androidx.room:room-testing:$room_version")// optional - Paging 3 Integrationimplementation("androidx.room:room-paging:$room_version")
}

主要组件:

  • 数据库类(Database):用于保存数据库&外界访问数据库
  • 数据实体(Entities):表
  • 数据访问对象(Dao):提供数据库增删改查的方法

使用步骤:

a.定义数据实体

@Entity
data class User(@PrimaryKey val uid: Int,@ColumnInfo(name = "first_name") val firstName: String?@ColumnInfo(name = "last_name") val lastName: String?
)

b.定义数据访问对象(接口)

@Dao
interface UserDao {@Query("SELECT * FROM user")fun getAll(): List<User>@Query("SELECT * FROM user WHERE uid IN (:userIds)")fun loadAllByIds(userIds: IntArray): List<User>@Query("SELECT * FROM user WHERE first_name LIKE :first AND " +"last_name LIKE :last LIMIT 1")fun findByName(first: String, last: String): User@Insertfun insertAll(vararg users: User)@Deletefun delete(user: User)
}

c.定义数据库类

  • 带有@Database注解,注解相关联 数据实体
  • 该类为抽象类,继承并扩展RoomDatabase
  • 定义获取Dao类的抽象方法
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {abstract fun userDao(): UserDao
}

d.实例化并操作数据库

val db = Room.databaseBuilder(applicationContext,AppDatabase::class.java, "database-name").build()val userDao = db.userDao()
val users: List<User> = userDao.getAll()

http://www.yayakq.cn/news/516135/

相关文章:

  • 刷神马网站优化排名花瓣网设计官网
  • 怎么做捐款网站做网站 分类搜索
  • 重庆网站建设公司模板win7系统优化大师
  • 网站开发用软件网络营销常用工具有哪些?
  • 怎么更换网站图片市政道路毕业设计代做网站
  • 找企业网站制作vultr建站wordpress
  • 哈尔滨住房和城乡建设局网站wordpress 跳板
  • 最新域名解析网站峨眉网站建设
  • 如何用flashfxp通过ftp访问网站服务器下载网站代码安卓html编辑器
  • 电子商务适合女生学吗企业网站导航优化
  • 莆田哪里有做网站的以前做弹幕现在的电影网站
  • 手工业网站怎么做网站建设的项目总结
  • 无锡网站优化哪家快在线生成电子印章
  • 黄浦手机网站建设好的flash网站
  • wordpress 千万数据seo信息是什么
  • 企业建设H5响应式网站的5大好处6郑州 网站建设有限公司
  • 遨游网站建设如何做衣服销售网站
  • 网站部分网页乱码公司做阿里巴巴网站要多少钱
  • 站长工具视频网站现在怎么做排名
  • 做装修行业营销型网站沈阳网站建设与开发
  • 珠海网站免费制作怎样制作一个二维码
  • 如何做网站网页免费建设网站需要做什么
  • 网站开发流程书籍附近的教育培训机构有哪些
  • 学做网站需要什么软件极速网站建设定制
  • 黄岛网站建设哪家权威大连市建设厅网站
  • 网络公司网站样本腾讯网
  • 网站首页模板制作网站报价表格
  • 医院科室网站建设网站地图模板.zip
  • wordpress pdo mysql扩展青岛网站seo收费
  • 做网站花都区做百科需要用什么网站做参考