Tag: sqlite

SQLite教程1

1.什么是SQLite 2,SQLite vs Core Data vs Realm 3.Mac OS中的SQLite演示 开始 1.什么是SQLite SQLite3是一个开放源代码,Apple在Xcode中使用它 一种。 一个文件是数据库,您无需创建像oracle这样的数据库 b。 它是轻量级的数据库 c.SQLite可以支持ios,android,windows 2.SQLite与核心数据与领域[1] [2] SQLite: 优点: – 支持iOS,android,windows,ubuntu平台 –内存消耗更少 核心数据: 优点: –从SQLite演变而来,您无需了解SQL命令。 –访问速度比SQLite更快 –仅适用于iOS MacOS平台 –支持iCloud RealM:[3] Realm是一个开源移动数据库。 Realm替代了SQLite和核心数据。 它可以节省大量的代码行和工作时间。 支持Objective-C,Swift和Java。 平台支持:iOS,Mac,Android 3.Mac OS中的SQLite演示 下载SQLite数据库浏览器下载 到现在为止,我们完成了数据库结构。 单击浏览数据以添加记录 我们可以执行SQL 在您的Objective C命令行项目中添加SQLite PS。 我的xcode版本是9 执行结果,在SQLite DB中显示记录 数据来自 [1] http://www.drdobbs.com/mobile/ios-data-storage-core-data-vs-sqlite/240168843 [2] http://www.jianshu.com/p/792551a9fcbc [3] […]

在iOS和SQLite上使用Fluent

大家好,今天,我将尽我最大的努力,向您介绍安装和使用SQLite在iOS上使Fluent正常工作的经验。 Fluent是完全基于Swift 3.0编写的基于口才的ORM,由团队在Steam上创建。 它易于使用和设置,并且与Vapor进行了深度集成,Vapor是利用Swift 3.0的最新和有前途的Web框架之一。 我建议您看一下它们的主要仓库,在其中可以找到很多有希望的服务器端swift库:蒸气 本演练基本上适用于任何依赖基础C库的Swift框架。 在我的小冒险中,我严重依赖这些资源和教程: https://medium.com/swift-and-ios-writing/using-ac-library-inside-a-swift-framework-d041d7b701d9#.jsp34w5km http://stackoverflow.com/a/31757698/1233655 为什么呢 对于Vapor用户和服务器端敏捷开发人员而言,Fluent是使您的应用程序与后端之间的模型保持一致的好方法。 另外,Node使在您的应用程序和服务器之间传输JSON变得非常容易,Fluent很大程度上依赖于它以及Vapor。 现在开始吧! 创建一个iOS Xcode项目 这里没有技巧,这将是您的iOS应用程序项目。 您当然可以使用现有项目,它将与任何类型的iOS项目一起使用。 将Fluent集成到工作区中 此步骤旨在创建一个工作区,包括您的应用程序项目和FluentSQLite.xcodeproj, 为了在单个git clone获取所有框架,我们只需要获取将使我们能够将Fluent与SQLite一起使用的驱动程序,而swift软件包管理器将获取所需的所有依赖项。 git clone https://github.com/vapor/sqlite-driver.git 让我们生成Xcode项目,该项目将获取所有依赖项。 cd sqlite-driver / 迅捷包generate-xcodeproj 现在我们有一个适合Fluent的xcodeproject,让我们创建一个包含两个项目的工作区。 Fluent及其依赖项配置为仅在macOS上构建。 要更改此设置,我们需要转到FluentSQLite设置>构建设置,并将每个框架支持的平台从macOS更改为iOS。 (用箭头显示的列表) 更改支持的平台后,选择适当的iOS设备以在其上构建FluentSQLite。 导入CSQLiteMac 到目前为止,由于尚未导入CSQliteMac模块,因此无法编译。 您将需要从github获取它(我建议将其克隆到您项目的根目录) git clone https://github.com/vapor/csqlite 现在在项目的构建设置中,转到Swift搜索路径->导入路径,如果在项目的根目录中克隆了${SRCROOT}/csqlite则只需添加${SRCROOT}/csqlite ,否则添加路径。 就是这样! iOS默认情况下安装了sqlite,因此无需将其嵌入到项目中。 让我为您提供一个用于创建数据库的简单代码段,它是我添加到AppDelegate.swift中的一个简单函数:https://gist.github.com/adriencanterot/fc5fb983e55cab115440406e33c3e88f 欢迎在vapor.team上提问,并在vapor / fluent-example上查看Fluent-example! 社区反应异常活跃,如果有的话,我很乐意提供帮助!

第1部分:Swift中的领域CRUD操作

好的 这是Swift初学者的快速入门教程。 在继续讨论第2部分中的教程之前,我将快速介绍三个主要令人困惑的术语:Swift,CRUD和Realm。 如果您设法找到本文,那么您至少应该对Swift有所了解。 这是一种很棒的语言,可让您为Apple的所有事情做出色的工作。 Swift的新版本包含Core ML,可用于构建更多智能应用程序以及其他非常酷的功能。 在使用键盘杀死自己之前,我将对CRUD进行更详细的介绍。 在编程中,CRUD是首字母缩写词,代表创建,检索,更新和删除以及其他bla-bla-bla变体。 这些是您在尝试弄清楚时会遇到的四个基本操作: “我要将数据存储在哪里?” 让我向您展示CRUD操作的工作方式。 假设您想跟踪那个把您从幼儿园操场的秋千上推开的坏孩子。 为此,您需要执行四个主要操作: 创建:通过在纸上写下坏孩子的名字,将其记录在本地数据库中。 您可以添加他们的图片以及其他详细信息。 全取决于你。 检索:现在,您只需简单地拉出显示在纸张(本地数据库)上的信息,就可以通过名称和其他说明来调用该儿童。 注意数据库的位置。 我曾经把我的袜子藏在袜子里。 更新:然后,您可以通过Swift中的CRUD操作更新其记录,从而添加有关该儿童的更多信息。 删除:如果该玩偶对您有好处,并且没有记录可追踪,那么您可以删除您的条目并切换到另一个玩偶。 简单吧? 这些是我们将在本教程中使用Realm复制的CRUD操作。 那么,什么是境界? Realm是一个实时的跨平台对象数据库,可让您使用设备内部的CRUD操作来处理数据。 这是一个用于本地数据存储的出色移动平台,可替代SQLite和Core Data,由于学习曲线陡峭,可能成为“麻烦中的烦恼”。 是的,摘要化SQLite和Core Data的脚本规则将使您感到便秘! 与常规的服务器端数据库不同,您可以在应用程序内直接使用Realm来在设备上本地存储和查询数据,每秒查询率为31。您不需要幼稚园的程度就可以理解下图。 Realm是先离线构建的,它可以通过所有移动应用程序中的双向数据同步无缝地处理您的数据。 我在所有移动应用中都说过吗? 对! 领域可用于Java,Swift,Objective‑C,JavaScript和Xamarin! 好的,现在让我们在第2部分中进行应用。

Swift中的NSBatchUpdateRequest及其优势

在此博客中,我们将学习实现NSBatchUpdateRequest Swift 3.x版本在iOS 8中引入的Core Data的说明。 我们还将关注内存使用情况和执行时间。 我还制作了有关此主题的视频教程。 请检查博客末尾的链接。 从iOS 8和更高版本以及OS X Yosemite和更高版本,我们可以直接与持久性存储进行交互并更新属性。 根据Apple的说法,这是批量更新。 因此,在不浪费更多时间的情况下,让我们深入了解Xcode中的代码部分。 创建一个新项目,并确保选中使用核心数据复选框。 创建项目后,转到。 xcdatamodeld文件并创建一个名为Student的实体。 我们还将创建它的两个属性, studentName和studentRollNo 。 每当我们尝试从编辑器创建NSManagedObject类时,在Swift 3.x中都会出现一个奇怪的错误- 具有相同名称的文件名redeclaration 。 因此,为了解决该问题,请选择实体,然后在“ 数据检查器”部分中转到“ 类” 。 如下图所示,将Module更改为Current Product Module ,将Codegen为Manual / None 。 然后,最后单击“编辑器”,然后单击“ 创建NSManagedObject子类”。 因此,我们已经准备好模型子类。 在这里,它们看起来像。 Student + CoreDataClass.swift 进口基金会 导入CoreData 公共班学生:NSManagedObject { } Student + CoreDataProperties.swift 进口基金会 导入CoreData 扩展学生{ @nonobjc公共类func fetchRequest()-> […]

Android vİOS’a SqlLite PlugininiTanıtmave React Native ileİlkSqlLite Denemeyimi

Merhaba sevgiliyazılımaşıkları, 反应本机 ile uygulamageliştirirken 数据 üzerindekiişlemlerimizi服务员aracılıylasunucularüzerindegerçekleştireceğiz。 Sadece local’deçalışanuygulamalargünümüzdeyok denecek kadar az.Uygulamalar dataişimlerinisunucuüzerindeyapıyorlar。 Bizde ileri tarihli React Nativeyazılarımızdayapacağımızörnekuygulamalarıbumantıkdageliştirmeyeçalışacağız。 Geliştirmeyeçalışacağızdiyorum。 Çünkücihazüzerindemutlaka本地数据tutmamızgerekecek。 Böylebir durumda SqlLite birseçenekolabilir。 Siz altarnetif bir插入de kullanabilirsiniz。 SqlLiteyazısınıniki anaamacıolacak。 Birincisi: react-native-sqlite-storage 插件Andorid ve Ioscihazlarıiçinçalışırhale getirmek。 Bumantığıanladığımızdadiğerpluginlerikullanırkensıkıntıyaşamayızdiyedüşünüyorum。 饮食信息: Cihazüzerinde本地数据tutmakiçinyazmamızgereken SQLkodlarınımetotlararacılıylaçağırmamızısağlamak。 不说SQL的原因是什么,请执行以下操作。 佩尔·阿科尔德·奥尔马迪·阿玛·伊勒莱恩·博尔德·达哈·阿奇尔·比尔·塞克尔德·inceleyeceğiz。 SqlLite konusunabaşlamadanönce反应本机projesioluşturmamızgerekiyor。 Bununiçinreact-native init projeismi komutunu终端üzerindençalıştırmamızgerekiyor。 响应React Native 01和 响应React Native 02yazılarımıinceleyebilirsiniz。 YadaAşağıyaeklediğimReact原生projesinin […]

带FMDB的SQLite

FMDB是Apple为SQLite提供的C样式API的Objective-C包装。 请务必注意,SQLite不是Apple专有技术。 SQLite是Apple,Android,Skype和许多其他客户端和应用程序使用的开源C语言库,可提供强大的数据库引擎。 SQLite预先安装在所有iOS和Android设备上。 它也是iOS上用于Core Data的默认后备存储(尽管您可以选择其他选项)。 在这篇博客文章中,我们将仔细研究SQLite和iOS设备存储。 我们需要做的第一件事是使用Carthage(我的首选方法),CocoaPods或下载存储库来安装FMDB。 我不会在这篇文章中介绍这些步骤,因为它们在其他地方都可以广泛使用。 我将注意到,如果您使用的是迦太基,请将该框架拖到“目标”的“常规”选项卡的“嵌入式二进制文件”部分中。 这会将其添加到“嵌入式二进制文件”和“链接的框架和库”部分。 然后在您的桥接头中导入框架 #import 在某些时候,您可能需要检查实际的SQLite文件。 有几种工具可让您执行此操作,我喜欢使用的一种工具称为“用于SQLite的DB浏览器”。 它是SQLite数据库的可视查看器和编辑器。 您可以添加新条目,执行查询以及浏览数据库表。 我发现此应用程序对于使用Core Data非常有用。 请注意,如果在数据库浏览器中打开了SQLite文件,它将被锁定,因此FMDB事务将失败。 可以使用Homebrew如下安装DB Browser: brew cask install db-browser-for-sqlite 您可以使用终端的find命令find . -name test.sqlite在模拟器中find SQLite文件的位置find . -name test.sqlite find . -name test.sqlite 。 矿山位于以下位置: /Users/user/Library/Developer/CoreSimulator/Devices/89D0C0F5–3842–4E53-A060–8E3D4BDF134E/data/Containers/Data/Application/E37428BB-544C-4A17–9216–1BB3901ED33B/Library/Application Support/test.sqlite 要开始使用FDMB,我们首先需要创建一个SQLite文件。 有关如何执行此操作的基本说明,请参见FMDB存储库上的自述文件。 在此示例中,我们仅打算有一个数据库,但是如果需要,可以有多个数据库。 我只想使用单个数据库,并且由于在多线程环境中使用数据库可能非常危险,因此我选择创建一个单例来访问数据库并进行更新(稍后会详细介绍这种方法的原因)。 我创建了一个类,在访问数据库时充当包装器。 该类将提供基本访问所需的集中访问权限,以调用各种SQL命令。 FMDBDatabase类具有两个主要的静态属性sharedDatabase和sharedQueue 。 这些使调用者可以在需要时访问数据库,并可以使用共享队列来确保执行事务时的线程安全。 该仓库包含有关使用FMDB时线程安全性的部分。 自述文件明确指出:“ 一次从多个线程 使用 […]

在CoreData中使用ValueTransformer加密用户的敏感信息

简单的方法! 对于那些正在使用核心数据并且: 有一天,您公司的某个部门要求您更改存储在SQLite中的所有字符串以进行加密 或者只是希望您的用户数据能从越狱的设备中安全 如果正确使用Core Data,它将是一个非常方便的应用程序框架。 但是大多数时候人们没有! 这就是为什么您听到有人喊着让我们开始使用Realm的原因,甚至从根本上说,为什么不编写我们自己的SQLite包装器。 好吧,将我们的希望投向新技术并认为新的lib可以解决当前的所有问题始终是我们的本性。 如果您正在使用具有多个人的应用程序,并且经常更新模型文件,那么幸运的是,轻量级迁移,映射模型崩溃会早晚找到您! 这将在我的下一篇文章中进行解释! 现在,让我们解决我们的问题! 为了简单起见,使用最少的代码即可达到我在此所讲的内容,我们将首先从模板创建一个新的Master and Detail App,然后在Xcode 9中检查核心数据。 检查您的核心数据模型应该是这样的。 继续并在模拟器中运行此代码,并在其中添加少量数据。 今天早上,您的安全部门说,如果不对用户数据进行加密,我们就永远不要将其存储在SQLite中,因为如果它是越狱的设备,那么任何人都可以看到该数据! 首先,苹果设备不容易被黑客入侵! 如果是越狱的设备,大多数情况下只有/曾经/希望越狱的用户! 好吧,可能还有其他情况,让我们仅加密织补数据! 让我们开始创建数据模型的下一个版本! 创建新版本的核心数据模型! 可转换意味着将其存储为数据,与二进制的区别在于调用了上下文的save:和fetch:,可转换将在过程中使用ValueTransformer进行额外的操作。 在这里,我们使用一个名为“ EncryptionTransformer”的类。 现在,让我们验证我们的工作是否有效,打开SQLite文件,我们应该看到这些基数为64的“ ==”: 工作完成了! 我开始写一些可以在iOS开发中使用的隐藏技巧。 苹果没有告诉您的内容(WADTY)。 告诉我你们最想知道的内容也将很有帮助! 敬请关注! (只需点击跟随按钮!)

如何将数据保存在iphone中的sqlite3

我想创build数据库使用SQLite的经理。但值不存储在数据库中。如果我点击保存button警报消息将显示在这样的“数据插入失败”。我试图纠正这些问题。这种情况下,我访问了这么多的教程。但我无法纠正我的问题。昨天起,我完全阻止这个问题。请给我任何想法或build议如何保存数据。谢谢大家访问的问题。 DataBase.m //创buildDATABASE -(BOOL)createDB { NSString *docsDir; NSArray *dirPaths; // Get the document directory dirPaths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); docsDir=dirPaths[0]; // Build the path to the database file databasePath=[[NSString alloc]initWithString:[docsDir stringByAppendingPathComponent:@"Feedback.db"]]; BOOL isSuccess=YES; NSFileManager *fileManager=[NSFileManager defaultManager]; if([fileManager fileExistsAtPath:databasePath]==0) { const char *dbpath=[databasePath UTF8String]; if(sqlite3_open(dbpath, &database)==SQLITE_OK) { char *errMsg; const char *sql_stmt= "create table if not exists Feeback […]

POST SQLITE文件到远程服务器

我真的很累,在这里和谷歌search,但结果不好。 我问如果我想上传文件/本地SQLITE文件到我的服务器 我怎么能做到这一点,从iOS做一些备份数据库 您的答复将不胜感激。

无法在iTunes中查看SQLite文件

– (void) copyDatabaseIfNeeded { BOOL success; NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:ABC.Sqlite]; success = [fileManager fileExistsAtPath:writableDBPath]; if (success) return; // The writable database does not exist, so copy the default to the appropriate location. NSString *defaultDBPath = [[[NSBundle […]