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

网站流程公众号做 视频网站

网站流程,公众号做 视频网站,扬中论坛全部帖子,电信宽带360元一年一、介绍 Android Room 是 Android 官方提供的一个轻量级数据库框架#xff0c;用于在 Android 应用程序中管理数据持久性。它简化了数据库访问#xff0c;提供了更安全、更快速的数据存储方式#xff0c;并使得数据操作更加便捷。 二、Room的特点(八股文可以参考) 以下是…一、介绍 Android Room 是 Android 官方提供的一个轻量级数据库框架用于在 Android 应用程序中管理数据持久性。它简化了数据库访问提供了更安全、更快速的数据存储方式并使得数据操作更加便捷。 二、Room的特点(八股文可以参考) 以下是关于 Android Room 数据库的一些关键点 数据持久性Room 框架使您能够轻松地将数据持久化到数据库中从而在应用程序的生命周期内保持数据的可用性。SQL 查询简化使用 Room您可以使用标准的 SQL 查询语言来查询数据库同时避免了直接编写 SQL 代码的需要。事务管理Room 自动处理事务确保数据的一致性和完整性。缓存和同步Room 支持将数据缓存在内存中并在需要时同步到数据库。生命周期感知Room 的生命周期感知特性意味着它只在应用程序处于活动状态时执行数据库操作从而优化了性能。数据库迁移随着应用程序的发展和更新您可能需要更改数据库模式。Room 提供了简便的迁移策略来处理模式更改。事务回滚当遇到问题时Room 会自动回滚事务确保数据的完整性。支持多种数据类型Room 支持各种数据类型如整型、浮点型、字符串等。事务隔离级别根据需要设置事务的隔离级别以控制并发操作时的数据一致性。与其他 SQLite 工具兼容由于 Room 在内部使用 SQLite因此它与所有标准的 SQLite 工具和库兼容。 三、数据库升级问题 Room数据库是通过Entity来关联表。一个实体就是一张表如果实体发生变化了表结构自然发生了变化。如果我们不对数据库进行升级通过sql事务提交修改那么这张表在后期会和历史表发生冲突这是开发者最头疼的问题那么如果处理这个问题 处理升级问题我们应该了解Room是通过什么来管理的。 1.库的管理 数据库管理其实是数据库的创建是通过Database里面最核心的就是version。如果第一次创建设置一个版本号。 这个版本号会记录当前表的信息如果表发生了变化在初始化表的时候并没有通过升级版本修改表结构就会导致在Dao执行事务的时候报错。 2.如何修改表结构 在修改表结构Room也提供了合并的支持。分为两种 第一种2.4.0之前的版本手动 通过数据库创建的时候新增Migration Room.databaseBuilder(context,MyDataBase.class,).addMigrations() 将所有版本的表结构修改的版本号对应的Migration都添加进来。 private Migration migration_1_2 new Migration(1, 2) {Overridepublic void migrate(NonNull SupportSQLiteDatabase database) {//一般新增database.execSQL(ALTER TABLE table_name ADD column_name datatype);//修改表名或者数据结构database.execSQL(ALTER TABLE table_name MODIFY COLUMN column_name datatype);//删除database.execSQL(ALTER TABLE table_name DROP COLUMN column_name);}}; Migration 需要指定就版本与新版本然后在创建库的时候会进行坚持。 注意 在使用Room数据的时候一定要小心如果你的数据库发生了变化一定要及时新增migration否则时间一长可能改的面目全非。所以在新设计表的时候一定要要注意以后的扩展 第二种自动升级方案 在2.4.0以后升级可以通过DataBase里面的autoMigrations来完成但是需要Java11支持 public interface Database {Class?[] entities();Class?[] views() default {};int version();*/boolean exportSchema() default true;RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)Class?[] autoMigrations() default {}; }Database(autoMigrations {AutoMigration(from 1,to 2,spec MyDataBase.AutoMirgation1.class )}) 自动版本基本和手动差不多只是采取kapt和注入方式不需要开发者再手写代码降低了开发难度。 您可以使用 AutoMigrationSpec 为 Room 提供正确生成迁移路径所需的额外信息。定义一个在 RoomDatabase 类中实现 AutoMigrationSpec 的静态类并为其添加以下一项或多项注解 DeleteTable 删除表RenameTable重新命名表名DeleteColumn删除列RenameColumn重新命名列 自动提供了上面几种 DeleteColumn(tableName ,columnName )static class AutoMirgation1 implements AutoMigrationSpec{Overridepublic void onPostMigrate(NonNull SupportSQLiteDatabase db) {AutoMigrationSpec.super.onPostMigrate(db);}} 如果需要新增同样也可以在db里面新增通过execSql语句来完成。 三、代码里过多的Migration是否可以删除 不可以即使你表发生了很大的变化你也不能随便删除之前修改的如果删除了会导致之前有很多用户表有升级到最新导致后期升级上来丢了中间的表变化这样早执行Dao的时候直接crash。所以最好的办法是在创建自己的RoomDataBase的时候所有关于变化的都放在数据库类中方便管理 四、总结 通过以上的分析我们详细的明白Room数据的升级或者数据迁移的两种方式手动需要自己手写代码自动也可以手写但是自动需要JDK 11支持。还有就是手动mirgation的时候要保留之前的不能删除否则对之前的版本会造成无法升级的影响
http://www.zqtcl.cn/news/237000/

相关文章:

  • 网站建设方案 预算高端制作网站哪家专业
  • 响应式网站什么意思长春做个人网站做不了
  • 手机网站排名优化软件网站登陆页面怎么做
  • 辽宁网站建设价格杭江建设有限公司
  • 成立公司在什么网站网络推广推广培训
  • 承德网站制作公司哪家好公司网络组建方案模板
  • 用wordpress 建网站网站关键词怎么改
  • 怎么做网站做站点创建站怎么上传网站怎么办
  • 十堰网站建设专家html做的旅游网站
  • 网站项目上线流程网站改版需求说明
  • 网站建设制作公司xshell如何做网站
  • 义乌个人兼职做建设网站琼海做网站公司
  • 什么网站可以直接做word在柬埔寨做网站彩票推广
  • 深圳市宝安区住房和建设局网站校园网络方案设计
  • 株洲建设网站制作seo快速软件
  • 建站什么程序好wordpress返佣
  • 网站建设使用虚拟主机的优点与缺点马蹄室内设计论坛
  • 像wordpress一样的网站wordpress提示数据库出错
  • 优化网站首页新项目首码对接平台
  • 一个完整的网站建设过程wordpress企业中文模板下载
  • 我做微信淘宝客网站有哪些在公司做网站是什么职位
  • 湖南网站建设公司 干净磐石网络网站开发技术可行性分析怎么写
  • 石家庄制作网站网络推广与优化
  • 建站平台免代码可以自己设计图案的软件
  • 中山网站开发公司事业单位 网站备案
  • wordpress 做用户登录seo快速推广窍门大公开
  • php网站开发试卷做外贸一般在哪个网站
  • 有哪些网站的搜索引擎网站设计需要需要用
  • 网站建设有哪些需求徐州百度运营中心
  • 怎么做电脑网站后台杭州网站制作公司排名