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

Swift使用FMDB操作SQLite

本地数据库,在移动设备上使用广泛。IOS平台上自然也少不了它。最近自己折腾一个小App的时候需要使用sqlite本地数据库,上Github搜了下IOS下对SQLite的三方封装有个星星很多的FMDB。...不过是Obiect-C的库,我是使用Swift的,本以为不能用了,不过后折腾了下发现在Swift下使用oc的库非常简单。下面我就介绍下如何在Swift下使用oc的FMDB库。   ...XCode就会自动建立好oc到Swift的桥接了。   接下来我们在Swift项目下找到一个叫做BabyLog-Bridging-Header的文件,打开编辑。...在里面输入:#import "FMDB.h"   这样我们FMDB到Swift的桥接头就建好了。   3.使用   有了桥接头,我们就可以欢快的使用FMDB了。...获取数据库   如果数据库不存在则建立数据库表,存在则返回数据库对象。

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

    ·FMDB:第三方本地数据库处理框架(官方文档翻译篇)

    在Swift中,您将使用它executeUpdate(values:),这不仅仅是一个简洁的Swift语法,而且也是throws错误处理正确的错误: do { let identifier =...一个Swift字符串插入也不应该将值插入到SQL中。使用?占位符将值插入到数据库中(或WHERE在SELECT语句中的子句中使用)。...只是不要跨线程共享单个实例,绝对不要同时跨多个线程。否则,意外会经常发生,程序会时不时崩溃,或者报告异常。总之很崩溃。 所以,不要实例化单个FMDatabase对象,并在多个线程中使用。...而是使用FMDatabaseQueue。实例化一个FMDatabaseQueue,并跨多个线程使用它。该FMDatabaseQueue对象将同步并协调跨多个线程的访问。...3开始使用pointee,但在Swift 2.3中,使用memory而不是pointee。)

    1.3K20

    使用 Swift 的并发系统并行运行多个任务

    前言 Swift 内置并发系统的好处之一是它可以更轻松地并行执行多个异步任务,这反过来又可以使我们显着加快可以分解为单独部分的操作。...await关键字调用每个加载方法,然后使用这些调用的结果来创建我们Recommendations模型的实例——如下所示: extension ProductLoader { func loadRecommendations...相反,我们需要利用 Swift 的async let绑定来告诉并发系统并行执行我们的每个加载操作。使用该语法使我们能够在后台启动异步操作,而无需我们立即等待它完成。...但是,这次我们将无法使用async let,因为我们需要执行的任务数量在编译时是未知的。值得庆幸的是,Swift 并发工具箱中还有一个工具可以让我们并行执行动态数量的任务——任务组。...在以后的文章中,我们将更仔细地研究避免数据竞争的其他方法(例如通过使用 Swift 的新actor类型)。

    1.2K20

    VBA创建多个数据源的数据透视表

    1、需求: 有多个表数据,格式一致,需要创建到1个数据透视表。 2、举例: 比如要分析工资的数据,工资表是按月分了不同Sheet管理的,现在需要把12个月的数据放到一起创建1个数据透视表。 ?...3、代码实现 用过Excel的应该都用过透视表功能,透视表功能非常强大,而且简单易用,我们一般用透视表都是处理单独1个Sheet的数据,如果要完成多个Sheet的透视处理,可能大家想到的最直接的方法是复制到...我们要完成这个功能,比较好的方法是用SQL语句将多个表拼接到一起再用数据透视表。...使用VBA代码自动创建,这种能更加方便的增加Sheet: Sub vba_main() Dim str_sql As String str_sql = GetSql()...Worksheets("透视表").Activate Cells.Clear CreatePivotCache str_sql, Range("A4") End Sub Function

    3.4K20

    SQLite 并发的四种处理方式

    下面我们通过 iOS 中四个常用类库 (SQLite.swift, FMDB, GRDB, Core Data) 来看看这些设计。...SQLite.swift 方案 SQLite.swift 采用了最简单粗暴的一种方案,使用者只会得到一个数据库连接,所有的操作都是在该连接上串下执行,类库的作者并没有提供数据库连接池类似的特性。...FMDB 方案 FMDB 与 SQLite.swift 一样都是采用串行设计,只不过 FMDB 在此基础上做了些加强:FMDB 中使用者不会接触到数据库连接而是通过在 API 闭包中组织语句来实现数据库访问...GRDB 方案 此方案借鉴了 FMDB 中的 API 设计,使用者通过在闭包中组织语句来实现数据库访问。不过与前两个相比,GRDB 最大的不同就是它不再使用串行队列设计。...而前面三种方案只要 SQL 语句没有违背表定义都能进行记录更新而且最后一个永远是赢家。

    7K70

    使用Python pandas读取多个Excel工作表

    学习Excel技术,关注微信公众号: excelperfect 标签:Python与Excel,pandas 本文将尝试使用Python pandas读取来自同一文件的多个Excel工作表。...我们可以通过两种方式来实现这一点:使用pd.read_excel()方法,并使用可选的参数sheet_name;另一种方法是创建一个pd.ExcelFile对象,然后解析该对象中的数据。...图3 pd.ExcelFile() 使用这种方法,我们创建一个pd.ExcelFile对象来表示Excel文件。此时,我们不需要指定要读取的工作表。...图5 要从工作表中获取数据,可以使用parse()方法,并提供工作表名称。...图6 需要注意的一点是,pd.ExcelFile.parse()方法与pd.read_excel()方法等效,这意味着你可以传入read_excel()中使用的相同参数(参见:Python pandas

    13.3K42

    Realm、WCDB与SQLite移动数据库性能对比测试

    四、Realm优缺点 优点: Realm在使用上和Core Data有点像,直接建立我们平常的对象Model类就是建立一个表了,确定主键、建立索引也在Model类里操作,几行代码就可以搞定,在操作上也可以很方便地增删改查...,不同于SQLite的SQL语句(即使用FMDB封装的操作依然有点麻烦),Realm在日常使用上非常简单,起码在这次测试的例子中两个数据库同样的一些操作,Realm的代码只有SQLite的一半。...其实Realm的“表”之间也可以建立关系,对一、对多关系都可以通过创建属性来解决。 在.m方法中给“表”确定主键、属性默认值、加索引的字段等。...贴一份评论: 六、结 测试过后,感觉还是比用FMDB方便很多,其中又以WCDB更为推崇,Realm其实也不错,如果是一些新创建的中小型工程,也可以尝试,WCDB刚开源不久,可能还会有一些坑,不过毕竟微信那边出品的...https://github.com/Tencent/wcdb/wiki/iOS+macOS使用教程 [8] WCDB 官方与FMDB性能对比 https://github.com/Tencent/wcdb

    4.1K10

    第12-13课 创建表的联结创建联结内联结联结多个表外联结自联结使用带聚集函数的联结小结

    sql中最强大的功能之一就是表的联结。 为什么使用联结? 因为在关系表中,数据是存储在各个表中的。如何一次检索出各个表中的数据,答案就是使用联结啦。...创建联结 select vend_name, prod_name,prod_price from vendors,products where vendors.vend_id = products.vend_id...; 注意,联结产生的是笛卡尔积,所以需要使用where语句。...vend_name, prod_name,prod_price from vendors inner join products on vendors.vend_id = products.vend_id; 联结多个表...group by customers.cust_id; 小结 注意联结的类型,大多数情况都是内联结,偶尔用到外联结 必须提供联结条件,不然得出的是笛卡尔积,里面包含了不正确的数据 在一个联结中可以包含多个表

    60210

    SQLite使用CREATE TABLE 语句创建表

    SQLite 创建表 SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型。...columnN datatype, ); CREATE TABLE 是告诉数据库系统创建一个新表的关键字。CREATE TABLE 语句后跟着表的唯一的名称或标识。...实例 下面是一个实例,它创建了一个 COMPANY 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL: sqlite> CREATE TABLE COMPANY(...CHAR(50) NOT NULL, EMP_ID INT NOT NULL ); 您可以使用 SQLIte 命令中的 .tables 命令来验证表是否已成功创建,该命令用于列出附加数据库中的所有表...您可以使用 SQLite .schema 命令得到表的完整信息,如下所示: sqlite>.schema COMPANY CREATE TABLE COMPANY( ID INT PRIMARY

    3.5K00

    PolarDB 数据库:使用polardb进行创建数据库、创建用户、授权、创建表空间、创建schema表的常用操作使用演示

    进入数据库: 通过 su - 数据库对应的系统管理员 登录后,再使用 psql 命令即可进入数据库。...创建数据库: create database 数据库; 展示数据库列表: 切换数据库: \c 数据库 创建用户: create user 用户名 with password '密码'; 给用户分配权限...all privileges on database 数据库 to 用户; grant all privileges on all tables in schema public to 用户; 创建...schema 表: create schema 表名; 在指定路径下创建表空间: create tablespace 表空间 owner 用户 location '路径'; 设置数据库默认表空间...: alter database 数据库 set tablespace 表空间; 给指定用户分配表空间的使用权限: grant all on tablespace 表空间 to 用户; 更多命令可以通过

    2.7K10
    领券