美文网首页iOS 成长之路
iOS总结1 - 数据库sqlite的使用

iOS总结1 - 数据库sqlite的使用

作者: ngugg | 来源:发表于2017-08-16 00:04 被阅读0次

一、集成测试环境

1.在github中搜索FMDB https://github.com/ccgus/fmdb
2.创建测试工程
3.创建podfile 文件,安装FMDB pod 'FMDB'
4.导入 #import <FMDB.h> 头文件

二、测试用例

1.生成数据库

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"fm.db"];
FMDatabase *db = [FMDatabase databaseWithPath:path];

2.创建表文件语句

empty.png

3.在里面输入

create table if not exists T_Person(
    id integer not null primary key autoincrement,
    age integer,
    name text
);
create table if not exists T_Student(
    id integer not null primary key autoincrement,
    age integer,
    name text,
    score integer
);

4.加载sql 语句

NSString *sqlPath = [[NSBundle mainBundle] pathForResource:@"db.sql" ofType:nil];
NSString *sql = [NSString stringWithContentsOfFile:sqlPath encoding:NSUTF8StringEncoding error:nil];

5.执行sql语句

   [db open];
    //执行多条sql 语句
    BOOL result = [db executeStatements:sql];
    if (result) {
        NSLog(@"创表成功");
    } else {
        NSLog(@"创表失败");
    }
    [db close];

6.打开火狐浏览器,打开 工具,选择 附加组件,点击左侧的扩展,然后右侧的搜索栏里面,输入sqlite,点击 安装,重启火狐浏览器,点击工具,打开

Snip20170815_2.png
然后点击 Snip20170815_3.png

选择刚才创建好报表的数据库


Snip20170815_4.png

三、 插入,查询,修改,删除

1.插入

    NSString *insertSql = @"INSERT INTO T_Person(age,name) values(?,?)";
    BOOL insertResult =  [db executeUpdate:insertSql withArgumentsInArray:@[@(18),@"周文刚"]];
    if (insertResult) {
        NSLog(@"插入成功");
    } else {
        NSLog(@"插入失败");
    }
2.查询
  //1.简单查询
    NSString *selectSql = @"select id,name,age from T_Person";
    FMResultSet *selectResult = [db executeQuery:selectSql];
    while (selectResult.next) {
        NSInteger key = [selectResult intForColumn:@"id"];
        NSString *name = [selectResult stringForColumn:@"name"];
        NSInteger age = [selectResult intForColumn:@"age"];
        NSLog(@"key = %ld,name = %@,age = %ld",(long)key,name,(long)age);
    }

执行的结果

Snip20170815_5.png
  //2.复杂的查询
  NSMutableArray *selectArray = [NSMutableArray array];
  FMResultSet *selectResult1 = [db executeQuery:selectSql];
  while (selectResult1.next) {
      NSMutableDictionary *dic = [NSMutableDictionary dictionary];
      NSInteger count = selectResult1.columnCount;
      for (int i = 0; i < count; i++) {
          NSString *colName = [selectResult1 columnNameForIndex:i];
          id colValue = [selectResult1 objectForColumn:colName];
          
          dic[colName] = colValue;
      }
    
      [selectArray addObject:dic];
  
  }
  NSLog(@"%@",selectArray);

运行结果截图


Snip20170815_6.png
3.更新
    NSString *updateSql = @"update T_Person set name = ?, age = ? where id = ?";
    BOOL resultupdate = [db executeUpdate:updateSql withArgumentsInArray:@[@"小明",@17,@1]];
    if (resultupdate) {
        NSLog(@"更新成功");
    } else {
        NSLog(@"更新失败");
    }
Snip20170815_7.png

4.删除

    NSString *deleteSql = @"delete from T_Person where id = 2";
    BOOL resultDelete = [db executeUpdate:deleteSql];
    if (resultDelete) {
        NSLog(@"删除成功");
    } else {
        NSLog(@"删除失败");
    }

运行结果


Snip20170815_8.png

相关文章

  • iOS数据库基本使用

    基本介绍 iOS数据库使用的是SQLite,一款轻型的嵌入式关系数据库。安卓和iOS开发使用的都是SQLite数据...

  • iOS数据库的基本使用

    今天总结下数据库的基本使用方法: iOS使用的数据库一般就是sqlite3,在使用该数据库前一定要先导入数据库框架...

  • SQLite数据库基础(完结)

    标签(空格分隔): iOS数据库 数据库总结 SQLite数据库 ios中的数据存储方式及其特点 Preferen...

  • iOS SQLite数据库基础

    标签(空格分隔): iOS数据库 数据库总结 SQLite数据库 ios中的数据存储方式及其特点 Preferen...

  • iOS原生s

    iOS原生sqlite的使用 首先导入数据库使用到的包 #import 声明一个数据库 sqlite3 *db; ...

  • iOS 数据库介绍

    SQLite介绍 SQLite是一款轻型的嵌入式关系数据库,安卓和iOS开发使用的都是SQLite数据库。它的特点...

  • Xamarin SQLite教程Xamarin.iOS项目添加引

    Xamarin SQLite教程Xamarin.iOS项目添加引用 使用直接方式访问SQLite数据库,需要将Sy...

  • iOS总结1 - 数据库sqlite的使用

    一、集成测试环境 1.在github中搜索FMDB https://github.com/ccgus/fmdb2....

  • sqlite3数据库操作

    在iOS中使用SQLite3首先要添加库文件libsqlite3.dylib并引入头文件1、打开数据库sqlite...

  • iOS对象存储框架,含单元测试Demo

    iOS database framework based on sqlite3(基于sqlite3的iOS数据库存...

网友评论

    本文标题:iOS总结1 - 数据库sqlite的使用

    本文链接:https://www.haomeiwen.com/subject/zkxbrxtx.html