如果没有就从Bundle中把数据库资源复制到沙盒中
删除和更新数据。
在TableView长举办加载,你要知道在Bundle中是无法去变动数据库中的数据的。
添加上搜索,在之前的博客中我们只举办了查询操纵,YES:更新乐成。
NSUserDomainMask, 三、实例实现 挪用上述简朴封装的要领实现实例,把Cars数据库中的个中一个表的数据举办查询,就是对TableView的简朴操纵,你可以本身运行去看一下结果,会从Bundle中把资源复制已往23if (!success) {24NSString *defautlDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];2526NSError *error = nil;2728success = [fileManager copyItemAtPath:defautlDBPath toPath:sqlPath error:error];2930if (!success) {31NSLog(@%@,在iOS系统上呢,而且挪用这个东西类对数据库举办增删改查,然后可以对数据举办添加和删除操纵, 一、数据库操纵东西类 为了操纵数据库更为利便。
在没有越狱的呆板上,为了安详起见,那么需要在打开数据库之前把Bundle中的数据库拷贝到沙盒中(每个App都有本身的沙盒。
下方是动态的运行结果。
然后举办扩展, NULL);4243//乐成打开44if (result == SQLITE_OK) {45return database;46}4748return nil;49 } 2.封锁数据库 封锁数据库就较量简朴了, NO:插入失败51 *******************************/52 + (BOOL) insertDataWithDataBase: (sqlite3 *) database53WithSQL: (NSString *) SQL54WithParameter: (NSArray *)parameter;55 56 /*******************************57 *成果:更新数据58 *参数:database -- sqlite3 工具,先读取数据库中的数据,parameter:绑定变量的值40 *返回:封装成数组的查询数据41 *******************************/42 + (NSArray *) queryInfoWithDataBase: (sqlite3 *) database43WithSQL: (NSString *) SQL44WithParameter: (NSArray *)parameter;45 46 47 /*******************************48 *成果:插入数据49 *参数:database -- sqlite3 工具,无绑定值查询数据库,下方是对外暴漏的接口, 下方Demo的实现并没有什么坚苦之处,直接把传入的sqlite3工具举办一个封锁即可,YES:插入乐成, 1 /******************************* 2 *成果:打开数据库 3 *参数:databaseName -- 数据库名称 4 *返回:数据库工具(sqlite3工具) 5 *******************************/ 6 + (sqlite3 *) openDatabaseWithName: (NSString *)databaseName{ 78//将数据库文件复制到沙盒中 9NSFileManager *fileManager = [NSFileManager defaultManager];1011//获取沙盒路径12NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,可以从Github长举办clone,parameter:绑定变量的值69 *返回:插入功效。
详细代码实现回在GitHub长举办分享,你可以通过这个工具来对打开的数据库举办操纵,在插入操纵中有假如有这条数据就举办Replace, 假如对数据库历程insert, NO:更新失败60 *******************************/61 + (BOOL) updateDataWithDataBase: (sqlite3 *) database62WithSQL: (NSString *) SQL63WithParameter: (NSArray *)parameter;64 65 66 /*******************************67 *成果:删除数据68 *参数:database -- sqlite3 工具,这个Demo也会在Github长举办分享,假如没有就从Bundle中把数据库资源复制到沙盒中,这变相是一个update操纵,在要害代码出都加了注释, database,假如有就直接打开,这也是iOS较量安详的处所之一),无绑定变量30 *参数:database -- sqlite3 工具,为了简化操纵,就纷歧一的去往上粘贴代码了,在Bundle中的数据库资源是不答允举办数据的插入修改和删除操纵的。
东西类对外接口先容 先来看一下封装的东西类对外的接口,App只可以会见本身的沙盒,先去沙盒中查察是否有该数据库。
博客篇幅有限, SQL:要执行的SQL查询语句31 *返回:封装成数组的查询数据32 *******************************/33 + (NSArray *) queryInfoWithDataBase: (sqlite3 *) database34WithSQL: (NSString *) SQL;35 36 37 /*******************************38 *成果:查询数据。
YES:删除乐成, delete等操纵, SQL:要执行的SQL查询语句, update,对付代码的对象就不做过多的赘述了,在这个要领中,本日这篇博客会封装出一个操纵SQLite数据库的东西类,删除的话就是TableView自带的结果删除,然后再把操纵SQlite数据库常用的要领举办一个封装,实现一个小的实例,返回的是一个sqlite3的工具,所以从Bundle加载数据库资源文件是可行的。
更新数据等举办了简朴的封装,对数据库操纵:打开封锁数据库,好比加上事务操纵等,删除数据, SQL:要执行的SQL插入语句,并在UITableView长举办展示,更新操纵就不做演示了,接口代码详细如下所示 1 // 2 // OperationSqliteTools.h 3 // SettingBundleDemo 4 // 5 // Created by Mr.LuDashi on 15/8/31. 6 // Copyright (c) 2015年 zeluli. All rights reserved. 7 // 8 9 #import Foundation/Foundation.h10 #import sqlite3.h11 12 @interface OperationSqliteTools : NSObject13 14 /*******************************15 *成果:打开数据库16 *参数:databaseName -- 数据库名称17 *返回:数据库工具(sqlite3工具)18 *******************************/19 + (sqlite3 *) openDatabaseWithName: (NSString *)databaseName;20 21 /*******************************22 *成果:封锁数据库23 *参数:database -- sqlite3 工具24 *返回:空25 *******************************/26 + (void) closeDatabaseWithName: (sqlite3 *)database;27 28 /*******************************29 *成果:查询数据,详细代码如下: 1 /*******************************2 *成果:封锁数据库3 *参数:database -- sqlite3 工具4 *返回:空5 *******************************/6 + (void) closeDatabaseWithName: (sqlite3 *)database{7sqlite3_close(database);8 } 3. 代码许多几何。
parameter:绑定变量的值50 *返回:插入功效,假如你感乐趣的话,虽然有感乐趣的小同伴可以继承完善, SQL:要执行的SQL插入语句。
关于CoreData的操纵就要看之前的博客《iOS开拓之表视图爱上CoreData》. gitHub分享地点:https://github.com/lizelu/SQLiteResource ,因为本实例要对数据库的数据举办modify(修改)操纵 , NO:删除失败70 *******************************/71 + (BOOL) deleteDataWithDataBase: (sqlite3 *) database72WithSQL: (NSString *) SQL73WithParameter: (NSArray *)parameter;74 75 /*******************************76 *成果:打印出查询后的功效77 *参数:array -- 功效数组78 *返回:空79 *******************************/80 + (void) displayResultWithArray: (NSArray *) array;81 82 83 @end 二、 接口的详细先容 1、打开数据库 下面的接口是打开数据库成果。
有绑定值查询数据库,插入数据, 本篇博客就利用前面操纵SQLite的常识来实现如何去插入。
然后再从沙盒中打开, /******************************* *成果:打开数据库 *参数:databaseName -- 数据库名称 *返回:数据库工具(sqlite3工具) *******************************/+ (sqlite3 *) openDatabaseWithName: (NSString *)databaseName; 该接话柄现的详细要领如下,点击加号会有预先设定好的数据举办插入(虽然你可以把用户输入的数据举办一个添加),gitHub毗连请看本博客的末端处,为了浮现数据插入和删除的变革结果,便于调查数据的变革, 下方是Demo的运行结果, [error localizedDescription]);32}33}34//把路径转成C字符串35const char * filePath = [sqlPath UTF8String];3637//声明sqlite3工具38sqlite3 * database = nil;3940//打开数据库41int result = sqlite3_open_v2(filePath,在代码中也是在要害部门添加了相应的注释,对Cars.sqlite数据中个中一个表举办操纵, SQL:要执行的SQL插入语句, YES);1314NSString *documentDirectory = paths[0];1516//拼接出数据库文件在沙盒中的路径17NSString *sqlPath = [documentDirectory stringByAppendingPathComponent:databaseName];1819//判定沙盒中是否已经存在我们要打开的数据库文件20BOOL success = [fileManager fileExistsAtPath:sqlPath];2122//不存在的环境,更新等成果,阅读代码时可以看一下注释,有绑定变量39 *参数:database -- sqlite3 工具,把数据库的名字传入如(Cars.sqlite),空话少说,parameter:绑定变量的值59 *返回:插入功效,然后先容一下其利用要领。
给我们的Cell添加了一个动画结果。
直奔主题。
把常用要领举办封装后, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/sqlite/13216.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
sqlite只通过文件锁就可以
时间:2021-01-23
-
返回的是一个SQLiteDatabas
时间:2021-01-23
-
只不过它是OC方式封装了
时间:2021-01-23
-
应该增加autoincrementcreate
时间:2021-01-23
-
如果没有就从Bundle中把数
时间:2021-01-23
-
Linux 部署ASP.NET SQLite 应用
时间:2021-01-23
-
只有被 sqlite3_bind_value()和
时间:2021-01-23
-
iOS开拓之SQLiteC语言接口类
时间:2021-01-23
热门文章
-
11SQLite之view(视图)
时间:2021-01-05
-
解压后拷贝出sqlite3文件到便于CMD命令行便
时间:2021-01-16
-
SQLite的架构(TheArchitectureOfSQLite)
时间:2021-01-05
-
只有被 sqlite3_bind_value()和sqlite3_result_val
时间:2021-01-23
-
应该增加autoincrementcreate table t_student (id
时间:2021-01-23
-
Android数据存储的三种方法SharedPrefrences
时间:2021-01-16
-
Android数据存储三剑客SharedPreferences File
时间:2021-01-07
-
sQlite常用语句以及sQlite developer的使用与注
时间:2020-12-24
-
3.2基于MBTiles规范进行存储 设计思路为:
时间:2021-01-13
-
SQLite数据库管理系统-我所认识的数据库引
时间:2020-12-28
