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

专业网站策划 西安wordpress新奇插件

专业网站策划 西安,wordpress新奇插件,潍坊企业建站系统,珠海网站设计公司Room数据库笔记 ORM框架#xff1a;对齐数据库数据结构与面向对象数据结构之间的关系#xff0c;使开发编程只考虑面向对象不需要考虑数据库的结构 Entity : 数据实体#xff0c;对应数据库中的表 完成面向对象与数据库表结构的映射 注解#xff1a; 类添加注解…Room数据库笔记 ORM框架对齐数据库数据结构与面向对象数据结构之间的关系使开发编程只考虑面向对象不需要考虑数据库的结构 Entity : 数据实体对应数据库中的表 完成面向对象与数据库表结构的映射 注解 类添加注解并指定与数据库中表的对应关系 Entity(tableName Book) 主键自增 PrimaryKey(autoGenerate true) private int _id; 数据库字段名称字段类型 对应对象的属性 ColumnInfo(name card_name,typeAffinity ColumnInfo.TEXT) private String cardName; 数据库忽略这种构造方法不需要数据库考虑的方法都使用Ignore注解 Ignore public CardInfoAuditionEntity(String className, int mode) {this.className className;this.mode mode; }DAO数据访问对象包含访问数据库的方法 完成数据库增删改查语句的映射 Query注解下的返回值可以是一个LiveData类型在Activity或者Fragment中监听这个LiveData值的变化执行刷新UI的操作 是一个接口类并且用Dao注解声明 Dao // 数据库查询语句与Java中查询方法相对应 (查询语句返回值为LiveData类型Room数据库会在数据库的本条查询结果发生变更时触发setValue在Acticity或者Fragment中注册对返回结果值的监听完成界面刷新 Query(SELECT * FROM CardInfoAuditionEntity) LiveDataListCardInfoAuditionEntity queryCardInfoAuditionLiveData(); // 数据库筛选查询useId与Java语句中的参数名要保持一致 Query(SELECT * FROM users WHERE id :userId) User getUserById(int userId); // Query注解可以使用其他的SQL语句进行查询 Query(SELECT COUNT(*) FROM users) int getUserCount(); // Query注解可以使用时执行Delete语句等 Query(DELETE FROM users) void deleteAllUsers(); // Delete注解该注解标记的方法用于从数据库中删除用户信息。 deleteUser(User user)删除用户信息返回删除的行数。 Delete int deleteUser(User user); // Update 注解该注解标记的方法用于更新数据库中的用户信息。 updateUser(User user)更新用户信息返回更新的行数 // 插入多条数据插入时插入的数据与已有的数据冲突替换 Insert(onConflict OnConflictStrategy.REPLACE) void insert(CardInfoAuditionEntity... cardInfoAuditionEntity); // Transaction注解等于数据库事务多条数据库SQL指令一起执行全部成功则插入数据库存在失败会回滚 Transaction default void insertAll(ListCardInfoAuditionEntity entities) {for (CardInfoAuditionEntity entity : entities) {insert(entity);} }Database数据库持有者 DataBase类是一个继承RoomDatabase的抽象类用注解Database声明 Database(entities {CardInfoPromotionEntity.class, CardInfoAuditionEntity.class, AppInfoEntity.class, FirstCreateStateEntity.class}, exportSchema false, version 1) public abstract class LauncherDatabase extends RoomDatabase { } 创建数据库 db Room.databaseBuilder(context.getApplicationContext(),LauncherDatabase.class, APP_INFO_DATABASE).addCallback(dbCallback).build(); 引入Dao对象 public abstract CardInfoPromotionDao cardInfoPromotionDao();在调用Dao文件中方法时尽量不在主线程(也可以在主线程在创建数据库时传入一个参数可以使用AnsyTask总之要在子线程或者创建一个ExecutorService 数据库升级 创建 Migration 类对于每一次数据库版本的升级需要创建一个 Migration 类该类实现 Migration 接口 在构建 RoomDatabase 实例时将 Migration 实例添加到 RoomDatabase.Builder 的 addMigrations 方法中 在Database注解中声明当前数据库版本 Database(entities {User.class}, version 2).addMigrations(MIGRATION_1_2)// 从版本 1 升级到版本 2 的 Migration static final Migration MIGRATION_1_2 new Migration(1, 2) {Overridepublic void migrate(SupportSQLiteDatabase database) {// 这里执行从版本 1 到版本 2 的数据库变更操作database.execSQL(ALTER TABLE User ADD COLUMN age INTEGER NOT NULL DEFAULT 0);} };数据库升级异常捕获 使用 FallbackToDestructiveMigration升级版本号不合规或升级失败后数据库中数据被清空但不会引发系统崩溃 INSTANCE Room.databaseBuilder(context.getApplicationContext(),AppDatabase.class, app_database).fallbackToDestructiveMigration().build();数据库表结构修改使用数据迁移 1.先创建备用表期待修改后的表结构 2.之后将原有表中所有数据插入到备用表中 3.删除原有表 4.修改备用表的表名为原有表 Room数据库schema文件 记录每次数据库升级后表的结构 1.先设置exportSchema为true Database(entities {CardInfoPromotionEntity.class, CardInfoAuditionEntity.class, AppInfoEntity.class, FirstCreateStateEntity.class}, exportSchema true, version 1)在build.gradle中配置文件生成位置 android {defaultConfig {javaCompileOptions {annotationProcessorOptions {arguments [room.schemaLocation: $projectDir/schemas.toString()]}}} }加载数据库初始数据 在构建数据库过程中使用 createFromAsset 方法指定从 assets 文件夹中的预填充数据库文件创建数据库 INSTANCE Room.databaseBuilder(context.getApplicationContext(),AppDatabase.class, app_database).createFromAsset(prepopulated.db).build();
http://www.hkea.cn/news/14404894/

相关文章:

  • 电子商务网站建设项目范围手机版谷歌浏览器入口
  • 联盟营销网站有哪些腾讯做的购物网站
  • 招设计师在哪里找网站seo顾问
  • 只放一个图片做网站网址大全123下载安装
  • 长沙岳麓区网站建设销售平台网站建设方案模板
  • 网路营销网站策划书莒南做网站
  • 上海网站建设极简慕枫wordpress 卸载
  • 城乡住房建设厅网站遵义网站推广
  • 做网站和推广的公司哪家好本地搭建多个网站
  • 做平面的就一定要做网站吗移动端和pc端的区别
  • 青岛网站制作哪里有龙岩网站设计 贝壳下拉
  • 成为网站建设人员措施潍坊网站制作保定公司
  • 极验验证 wordpress济南做seo的公司排名
  • 新网网站负责人核验现场拍摄照片电子件网站建设的论文
  • 网站接入支付宝在线交易怎么做广告公司好听的名字
  • 商城网站有哪些怎么设置网站默认首页
  • 网站建设可行性方案模板在线定制手机壳
  • 做网站费用入什么科目asp网站 seo
  • 重庆建工建筑工程信息网太原网站搜索优化
  • html5模板网站北京地产网站建设
  • 江苏省建设厅网站挂证存疑名单php做商品网站
  • 电子网站建设公司怎么安装php网站
  • 行业网站解决方案wordpress文章怎么增加字段
  • 深圳单位网站建设服务公司asp成品网站
  • 网站关键词优化方案用什么做网站方便
  • 怎么做跨境电商网站长沙精品网站建设公司
  • 做兼职设计去哪个网站如何制作微信小程序
  • wordpress网站制作app网站建设做网站可以吗
  • mvc网站建设的实验报告能直接用网站做海报吗
  • ppt模板网站源码苏州网站开发公司排名