iOS中SQLite的使用

  今天终于花了点时间把之前项目中使用到的对SQLite操作的方法整理一下并上传到github上,下载地址:(https://github.com/peanutNote/QYSQLiteManagerDemo.git)。

与其他第三方目的一样,主要是为了使代码中有关对SQLite操作简单化,具体用法:

  将QYSQLiteManager文件add到项目中,并在需要对SQLite进行操作的类中添加#import "QYSQLiteManager" 。

// 插入语句
- (void)insertTable
{
    // 创建sql语句
    NSString *sql = @"insert into teacher(name,id) values(?,?)";
    // 不可变参数
//    BOOL isOK = [QYSQLiteManager insertTableWithSqlString:sql andArray:@[@"小明",@115]];
    // 可变参数
    BOOL isOK = [QYSQLiteManager insertTableWithSqlString:sql andObjects:@"小明",@"115", nil];
    if (isOK) {
        NSLog(@"数据插入成功");
    } else {
        NSLog(@"数据插入失败");
    }
}
// 查询语句
- (void)selectTable
{
    NSString *sql = @"select * from teacher";
    [QYSQLiteManager selectTableWithSqlString:sql didFinishedBlock:^(NSArray *dataList, NSString *error) {
        NSLog(@"%@",dataList);
    } andObjects:nil];
}

// 修改表语句
- (void)alterTable
{
    NSString *sql = @"alter table teacher add column pwd integer";
    if([QYSQLiteManager alterTableWithSqlString:sql])
    {
        NSLog(@"修改成功");
    }
}

// 更新数据语句
- (void)updateTable
{
    NSString *sql = @"update teacher set name = ? where id = ?";
    if ([QYSQLiteManager updateTableWithSqlString:sql andArray:@[@"小明",@115]]) {
        NSLog(@"更新成功");
    }
}

  有关查询语句返回的数据类型,有需要的同学可以自行在“QYSQLiteManager.m”中查找“sqlite3_bind_text”,然后在如下处

// 绑定数据
    for (int i = 0;i < params.count;i++) {
        // 如果数据是字符串
        if([params[i] isKindOfClass:[NSString class]]) {
            sqlite3_bind_text(stmt, i+1, [params[i] UTF8String], -1, NULL);
        }
        // 如果数据是整数
        if([params[i] isKindOfClass:[NSNumber class]]) {
            sqlite3_bind_int(stmt, i+1, [params[i] intValue]);
        }
    }

修改你自己想要的数据类型即可。

时间: 2024-08-08 20:40:09

iOS中SQLite的使用的相关文章

iOS 中SQLite数据库操作

在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 demo 具体过程: 1.创建名为 SQLite_Manage 的.h .m 文件,导入头文件 <sqlite3.h> 2.数据库在一个app中只有一个,使用单例模式:(代码如下) 1 + (SQLite_Manager *)sharedManager{ 2 static SQLite_Mana

iOS中sqlite和coreData的区别

sqlite和coreData的区别: 1.sqlite数据库的操作流程: 创建数据库,再通过定义一些字段来定义表格结构,可以利用sql语句向表格中插入记录,删除记录,修改记录,表格之间也可以建联系. sqlite和coreData的类做个对应: 表结构--------NSEntityDescription(菜单详情) 数据库中所有的表格和他们的联系--------NSmanagedObjectModel(菜谱) 数据库存放方式---------NSPersistentStoreCoordina

关于iOS中SQLITE句柄的使用的细节

1.设计思想:给SQLITE进行封装,利用定义的类别实现方法的简洁,以便达到低耦合效果 1 控制器代码: 2 #import "ViewController.h" 3 #import "DatabaseHelper.h" 4 5 @interface ViewController () 6 { 7 sqlite3 *db; 8 } 9 @end 10 11 @implementation ViewController 12 13 -(void)loadView {

IOS中sqlite数据库利用bold类型存储与读取字典

我在做app收藏时, 发现我的数据有的是字典, 字典怎么向数据库中保存呢? 就看了好多博客, 字典应该利用数据库中的bold类型来保存,可是添加到数据库之后,读取不出来, 为此伤透了脑筋,为了解决这个问题, 花费了好时间. 以前认为bold类型就是用来存放二进制的,可以存放图片等, 而我的数据存到数据库中的确是二进制,所以读的时候全是二进制, 以致不能转换成字典.后来发现我保存数据的方法就是错的, bold类型不仅可以放二进制也可以放数据,简直颠覆了我对bold类型的看法,BLOB,只是一个数据

iOS中sqlite版本号

https://github.com/yapstudios/YapDatabase/wiki/SQLite-version-(bundled-with-OS) https://github.com/yapstudios/YapDatabase/blob/master/YapDatabase/YapDatabase.m ? ? + (NSString *)sqliteVersionUsing:(sqlite3 *)aDb { sqlite3_stmt *statement; int status

IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)

IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSXMLJSONSQLiteCoreData 一.文件操作 1.因为应用是在沙盒(Sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件: * Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 * tmp:存放临时文件,iTunes不会备份和恢复

iOS中几种数据持久化方案

概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite 3 CoreData 沙盒 在介绍各种存储方法之前,有必要说明以下沙盒机制.iOS程序默认情况下只能访问程序自己的目录,这个目录被称为"沙盒". 1.结构 既然沙盒就是一个文件夹,那就看看里面有什么吧

iOS中几种常用的数据存储方式

自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中, 具体步骤大致如下: 第一步:获得文件即将保存的路径: NSArray*documentPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,Y

iOS中的数据存储

SQLite3 SQLite3是一款开源的嵌入式关系型数据库,可移植性好,易使用,内存开销小. SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中. SQLite3常用的4种数据类型:text(文本字符串), integer(整型值), real(浮点值), blob(二进制数据(比如文件)). 在iOS中使用SQLite3,首先要添加库文件'libsqlite3.dylib'和导入主头文件#import<sqlite3.h> SQL语句的特点: 1> 不区分大