首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jetpack组件之Room

使用@Database注解的类应满足以下条件: 是扩展RoomDatabase的抽象类。 在注释中添加与数据库关联的实体列表。 包含具有0个参数且返回使用@Dao注释的类的抽象方法。...Entity:表示数据库中的表。 DAO:包含用于访问数据库的方法。 应用使用 Room 数据库来获取与该数据库关联的数据访问对象 (DAO)。...但是,您必须在每次使用这些注解时添加 @CopyAnnotations 注解,以便 Room 可以正确解释这些方法的自动生成实现。...需要注意,数据操作应在工作线程操作,除非指定在主线程可以查询,否则会发生崩溃。...RxJava+Retrofit+SQLite组合使用,学习完Jetpack后,我使用LiveData+Retrofit+Room封装了网络请求缓存框架,将Jetpack组合使用能更好的理解相关组件。

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android】数据存储(三) 数据库(SQLite)

    (这用到了SQL语句,不懂的看解释) /** * Created by Gavin on 2016/5/30. */ public class DatabaseHelper extends SQLiteOpenHelper...onCreate 当数据库第一次创建的时候,会执行onCreate()方法。这里的onCreate方法中创建了一张user表,db.execSQL()方法执行了里面SQL语句。...onUpgrade 数据库升级时会调用onUpgrade()方法,这里的onUpgrade()方法往user表中添加了性别(gender)属性。 操作数据库 操作数据库,增删查改是免不了的。...这里用到的execSQL()有两个参数: 参数1:SQL指令,这里是一条插入命令,命令中的问号(?)为占位符 参数2:Object数组,数组中的内容对应参数1中的问号(?)...()中用到的都最基础的是SQL指令,至于复杂的自己去查吧 使用 辅助类DatabaseHelper写完了,接下来就是使用了 插入一条数据 DatabaseHelper helper

    1.2K70

    【Jetpack】Room 预填充数据 ( 安装 DB Browser for SQLite 工具 | 创建数据库文件 | 应用中设预填充数据对应的数据库文件 | 预填充数据库表字段属性必须一致 )

    不变 , 将该字段设置为 非空 / 自增 / 主键 ; 生成的 SQL 语句如下 : CREATE TABLE "" ( "id" INTEGER NOT NULL, PRIMARY KEY("id..." AUTOINCREMENT) ); 继续添加 name 和 age 两个字段 ; 生成的 SQL 语句如下 : CREATE TABLE "" ( "id" INTEGER NOT NULL,..."name" TEXT, "age" INTEGER, PRIMARY KEY("id" AUTOINCREMENT) ); 为数据库表设置名称 student ; 生成的 sql 语句如下所示...OK 按钮 , 即可创建数据库表成功 ; 创建后的数据库表如下 : 创建好数据库表之后 , 在 执行 SQL 面板界面 , 插入两条数据 ; 点击 三角形 的 执行按钮 , 即可执行下面的 SQL 语句...最好是创建你的 * 预打包数据库模式时利用导出的模式文件生成 * (数据库。exportSchema]已启用。 * * 此方法不支持内存数据库[Builder]。

    61020

    扒虫篇-Bug日志Ⅴ

    解决方法:首先这个警告不会造成上传失败,也不会造成审核被拒。其次可以通过移除代码中警告的那些代码,并移除多余不使用的系统类库(framework),使警告消失。...2.模拟器运行失败,并提示“Failed to chmod /user/.........” 解决办法:可通过退出模拟器再次运行项目,会重新调用出模拟器。不用重置模拟器。 3....,一直没在意,以为是简书服务器那边的问题,最后我ping了一下发现,这台电脑是可以访问到简书服务器的,问了简书客房,他们说是少部分网络是会出现这个问题的,简直是扯淡。...类A有一个block属性用来传值,一旦我们在 A中有对这个属性进行赋值,那么所有类A的对象都需要实现这个 block属性方法,如果某个类A的对象没有实现这个block属性方法(不需要传值),就会造成崩溃...block属性方法,否则就会出现崩溃

    1.1K10

    SQL中去除重复数据的几种方法,我一次性都告你​

    使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析。...以某电商公司的销售报表为例,常见的去重方法我们用到distinct 或者group by 语句, 今天介绍一种新的方法,利用窗口函数对数据去重。...) 【解题思路】 方法1:distinct SQL书写如下: select distinct 访客id ,浏览时间 from 淘宝日销售数据表; 查询结果: 这里用distinct语句多字段进行去重的时候...方法2:group by SQL书写如下: select 访客id ,浏览时间 from 淘宝日销售数据表 group by 访客id ,浏览时间; 查询结果: group by对访客id...详细的窗口函数讲解(请点击-通俗易懂的学会:SQL窗口函数) 窗口函数的基本语法如下: over (partition by 的列名> order

    5.1K10

    工具篇-统计Crash的工具Crashlytics使用指南

    前言 作为开发者,程序崩溃是很经常的事,我们可以自己利用崩溃日志和自己找出Crash的原因,但是当团队人数众多,多版本控制的情况下,以及线上版本崩溃追踪都迫切需要一个工具来把崩溃的原因反馈给我们,最好是定位到崩溃的具体位置和在代码的具体行数...对于修复掉的Crash日志是十分有帮助的 除此之外,Fabric使Crashlytics还具有分析用户行为,跟踪用户操作的功能,这个跟友盟分析很像,也是一个很实用的功能。...这是因为我当时直接双击 Podfile 文件在里直接输入的,需要在 vim编辑器中输入,这样直接打开Podfile 文件编辑再关闭的话是会报错的。...** 附:正确方法 1. cd 到文件路径 2....使用真机时,需要拔掉连接线;使用模拟器时,需要先通过点击Xcode的停止键,然后在模拟器中通过点击应用图标后打开,Xcode运行模拟器的时候会阻止dSYM文件的上传。

    2.7K10

    实践-小细节Ⅳ

    如何把 iphone中的视频导出到 iMac 桌面 ? Paste_Image.png 网上有很多方法,尝试起来都很麻烦,我这个方法还是比较简单的。...既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出: 公钥负责加密,私钥负责解密; 同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出:...真机调试控制台不打印输出NSLog内容 以下的设置可以解决 iOS8控制台打印很多乱码的问题,但是同时也使真机调试时控制台没有打印输出。..., UITextFieldDelegate> @end 无论是@optional还是@required,在委托方调用代理方法时都需要做一个判断,判断代理是否实现当前方法,否则会导致崩溃。...第二个方法使用默认的模式(NSDefaultRunLoopMode)。 主线程就马上执行 ~~。 10.在模拟器上的UITextFeld中输入 _ “确定“后就会崩溃。真机上不会崩溃。

    80910

    如何在Xcode下预览含有Core Data元素的SwiftUI视图

    结合两年来我在SwiftUI中使用Core Data的经验和教训,我们将在本文中探讨: •导致SwiftUI预览崩溃的部分原因•如何在之后的开发中避免类似的崩溃出现•如何在Xcode中安全可靠地预览含有...其他视图、方法、声明等的代码错误,都可能会导致你无法预览当前的视图。 在排查视图预览崩溃的原因时,一定不能只关注当前视图或临近视图的代码,其他代码中的错误可能才是罪魁祸首。...•在模拟器设备管理器中删除模拟器再重新添加 上述的手段,多数也都适用于修复某些情况下的预览崩溃。...此种情况下,通常我们会在模拟器中删除App,重新安装运行即可解决问题。由于预览也是模拟器,在它的沙盒中同样可能出现类似的问题。可以使用上文中关于预览模拟器的修复方法来尝试解决。...在完成了各种处理CoreData数据的方法后,通常会创建一些非常简陋的视图或Unit Test来验证代码以及创建测试数据集。这样在进行UI开发的时候,我已经可以有一个可用来演示的数据库文件了。

    5.2K10

    安卓软件开发:理解Room数据库和上手

    Room主要有以下几个特点: • 类型安全:通过编译时SQL语句检查,防止运行时错误。 • 简化操作:通过注解配置,不再需要手动编写SQL代码进行常见的增删改查操作。...它包含了访问数据库的各种操作,如插入、更新、删除、查询等。通过@Dao注解,可以轻松定义这些方法,不需要手写复杂的SQL语句。...注意: • @Query注解用于执行自定义SQL查询。 • @Insert、@Update和@Delete注解用于增删改操作,Room会自动生成相应的SQL。2.3....• version参数指定数据库的版本号,随着数据库结构的变化,数字也会递增。 • abstract fun userDao()方法返回UserDao,通过它可以访问用户相关的数据库操作。3....Room数据库的上手指南我演示如何在Demo中集成和使用Room数据库。3.1.

    45230

    AAC---Room使用

    通过注解的方式来进行数据库的配置,以及SQL的查询,并且在编译的过程中,会检查SQL以及数据库配置等的正确性,同时也支持外键、事务等。...使用version定义数据库版本(数据库版本升级后续介绍) 在抽象类中,定义一个抽象方法提供DAO对象 @Database(entities = { UserData.class }, version...Class属性需要定义成public或者提供setter/getter方法。...以及增删改查的操作 Query可以定义参数,通过:param的方式在编译期间,生成对应的SQL语句,从而进行查询 剩下插入,删除,更新的可以定义单个或者多个对象进行批量更新 除了查询外的操作都会是一个Transaction...字段从String变成了int,则需要使用ALTER修改表结构 database.execSQL("ALTER TABLE user_table CHANGE userAge

    1.4K20

    【IOS开发基础系列】Xcode工具使用技巧

    1 工具使用技巧 1.1 模拟器安装 1.1.1 Xcode7中安装模拟器7.1报错 XCode7模拟器报错 Unable to open lib launch_sim.dylib Try reinstalling...1.2.4 dSYM工具使用         于是我抽了几个小时的时间将这些命令封装到一个应用中,也为以后解决bug提供了便利。.../details/41250107         xcode使用模拟器调试时,拷贝到bundle中的资源文件有缓存,有时候修改了资源文件(比如图片或者lua文件)后再次编译运行,模拟器中的文件依然是旧版本.../xuhanhanhan/article/details/50580093         现在是2016年一月份,已经不能在iTunes Connect查看崩溃日志上查看崩溃日志了,现在苹果的做法是你在...xcode上登录你的账号,打开xcode,点击上面的window选择organizer,出现如图 ,然后选择你要查看的版本,就可以看对应的崩溃日志。

    50820

    教程 | 如何使用Swift在iOS 11中加入原生机器学习视觉模型

    ,使所有性质的应用程序和游戏有望取得显著进步,本文作者 Alex Wulff 将对在 iOS 11 中加入机器学习模型的方法进行简要介绍。...而对于不基于图像的模型,苹果已经创建了小型的示例项目来演示使用方法,它完全独立于 Vision 之外,仅仅依赖 Core ML。 下一个代码块会建立并处理请求。...奇怪的是,分辨率较低的图像似乎对其最可能的分类具有最高的信任度。我无法解释这种情况出现的原因。如果有读者了解其中的原因,请在下面留言。我真的很费解! ?...最后一个代码块只需接受请求的结果并将其打印出来。在这个演示中,我没有设置任何「预防差错」的措施,所以一旦出现问题,整个应用程序便会崩溃。...若模拟器无法启动,退出模拟器和 Xcode 即可。它们运行一段时间后,你需要进行一次同样的操作。尽情享受模拟器的崭新外观与体验,以及对 iOS 11 的少许预览吧!

    2.2K50

    推荐一款好用的APP性能测试工具——Monkey!

    通过这个工具可以模拟用户触摸屏幕、滑动轨迹球、按键等操作来对模拟器或者手机设备上的软件进行压力测试,检测该软件的稳定性、健壮性。 2....手机设备上安装一个模拟器手机执行 monkey+参数 (手机模拟器可以通过百度搜索或360手机助手搜android terminal,安装即可,可以在模拟器的命令行中输入mokey +参数) (4)....1 -p 包名 事件总数,这个我标记了-s 1,命令操作完之后,我发现有日志报错,我想重新执行这个monkey操作,那你就可以继续执行这个命令,排错时常用。...从手机上获取需要测试的package 方法一:通过logcat命令,具体操作方法如下: 在PC机器上执行命令:adb shell "logcat | grep START" ,打开手机端需要测试的应用...,找最后一个ActivityManager 方法二:直接查看手机中存在的apk包,进入adb shell 命令后---手机的data/data文件夹--ls查看所有包名 找到要测apk的包名 这种方法需要

    6K21
    领券