美文网首页
iOS开发 -- 数据库的之sqlite

iOS开发 -- 数据库的之sqlite

作者: coder_那一抹刚吹过的风 | 来源:发表于2016-06-01 22:19 被阅读85次

    iOS开发用到的数据库主要有两种,一种是苹果原生的,CoreData,不过因为其繁琐的代码,导致很多程序员都不买他的帐,用的人也不是很多;那么第二种也就是现在比较流行的的小型嵌入式数据库sqlite。我个人觉得sqlite之所以流行主要是因为他的体积小,易于管理,并且支持SQL语句,学习成本也低。当然,纯原生的sqlite在iOS使用过程中也是比较繁琐的,通常我们都是用第三方框架FMDB。
    下载连接 https://github.com/ccgus/fmdb
    通过上面的链接我们可以得到最新版的FMDB,接下里我介绍一下他的使用。首先我们创建一个工程,取名FMDBDemo,接下来我做一下相关的配置。
    1.导入第三方框架
    选中工程根文件-》点击右键-》add File to (工程名) -》选中刚才下载的FMDB矿建 -》选中添加,一定注意要选择copy item选项。

    前两个步骤.png

    2.导入依赖库
    选中工程-》BuildPhase -》Link Library -》点击+-》搜索sqlite -》选中sqlite3-》点击添加

    添加完成之后.png

    做完了上述的事情 我们就可以愉快的开发了。在这里我将设一个实例场景,我们假设一个教室有很多的学生,每个学生都有他们的姓名,同时他们每个人都有一个宠物,每个人宠物有名字和你年龄。好,接下来我们写一个小demo,用来管理这些信息。
    开始之前,在我们的.h文件中引入FMDB.h头文件
    然后创建一个全局的变量db,类型为FMDatabase
    1.首先我们创建一个数据库db

        //创建db存储的路径
        NSString *path = [NSString stringWithFormat:@"%@/Documents/%@", NSHomeDirectory(), dbName);
          //创建数据库
          _db = [FMDBDatabase alloc] initWithPath:path];
         if ([db open]) {
         NSLog("创建数据库成功");
       } else {
         NSLog("创建数据库失败");
       } 
    

    2.给数据库创建一个class表

        //首先判断数据库能否打开
        if([_db open]) {
          //首先定义创建表的sql语句,说明一下,FMDB只是对sqlite的封装,其底层实现还是sqlite。
            NSString *sql = @"create table if not exists class(stuName archer(20), petName archer(20), petAge int)" ;
             if ([_db executeUpdate: sql])  {
                    NSLog("创建表成功”);
              } else {
                    NSLog("创建表失败"); 
              }
        } else {
            NSLog("打开失败");    
    }
    

    3.给数据库添加数据

          NSString *sql = [NSString stringWithFormat:@"insert into class values('%@', '$@', '%@')", stuName, petName, petAge];
          if ([_db executeUpdate: sql]) {    
                NSLog("添加数据成功");  
          } else {
                NSLog("添加数据失败");
          }
    

    4.数据库查找数据库

             NSString *sql = [NSString stringWithFormat:@"select * from class"];
              NSFMResultSet *rs = [_db executeQuery:sql]; 
              if ([_db executeQuery:sql]) {
                      while ([rs next]) {
                             NSLog("StuNaem: %@", [rs stringForColumn:@"stuName"]); 
                       }               
              }
    

    5.数据库删除数据

          //这里我们以stuName为依据删除该条数据
          NSString *sql = [NSString stringWithFormat:@"delete from class where stuName = '%@'", stuName];
          if ([_db executeUpdate:sql]) {
                    NSLog("删除成功");
          } else {
                    NSLog("删除失败");
        }
    

    6.数据的跟新操作

              NSString *sql = [NSString stringWithFormat:@"update class set stuName = '%@' where stuName = 'stuName'"];
              if ([_db executeUpdate:sql]) {
                      NSLog("修改成功");
              } else {
                      NSLog("修改失败");
              }
    

    结束语
    FMDB的基本使用方法大致就这么多。这里只是给大家提供了基本的用法,希望对新手能有所帮做。
    <a href=https://github.com/stevelyc/FMDBDemoPractce>Demo的github地址github</a>

    相关文章

      网友评论

          本文标题:iOS开发 -- 数据库的之sqlite

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