zoukankan      html  css  js  c++  java
  • iOS开发之用代码实现数据库FMDB的操作

    iOS开发之用代码实现数据库FMDB的操作

    1.简介

    需求作用:  如果需要保存大量的结构较为复杂的数据时候, 使用数据库, 例如交规考试项目

    常用的数据库:

      (1)Microsoft SQL Server 2000/2008, 中小企业使用较多

      (2)Oracle 比较复杂, 大企业使用较多

      (3)Mysql数据库, 网站使用较多

      (4)sqlite:  本地数据库, 访问数据足够快, 直接访问文件

             足够简单, 功能相对其他数据库软件不是特别齐全, 足够用了

              足够小, 系统不超过1M, 适合在移动端上使用

     2.FMDB操作数据库

    (1)配置 

      导入文件,

      添加二进制库 libsqlite3.dylib,

      包含头文件#import "FMDatabase.h"

     

    3.数据库在项目中使用-单例设计模式

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        //(1)创建数据库
        [self creatAndInitDatabase];
        
        //(2)创建数据表
        [self createTable];
        
        //(3)插入数据
        [self insertdata];
        
        //(4)查询数据
        [self queryData];
        
        //(5)修改和删除数据
        //参考:插入数据
    }
    
    -(void)queryData
    {
        //显示所有人的信息
        NSString *sql = @"select * from StudentInfo";
        //FMResultSet 表示查询后结果集
        FMResultSet *resultSet = [_database executeQuery:sql];
        
        //
        while ([resultSet next]) {
            NSLog(@"sid = %@,username = %@, password = %@,score = %@",[resultSet stringForColumn:@"sid"],[resultSet stringForColumn:@"username"],[resultSet stringForColumn:@"password"],[resultSet stringForColumn:@"score"]);
        }
        
    }
    
    -(void)insertdata
    {
        int sid = 1501;
        NSString *username = @"zhangsan";
        NSString *password = @"123";
        NSString *score = @"100";
        NSString *sql = @"insert into StudentInfo(sid,username,password,score)values(?,?,?,?)";
        
        BOOL b = [_database executeUpdate:sql,[NSString stringWithFormat:@"%d",sid],username,password,score];
        NSLog(@"b = %d",b);
    }
    
    -(void)createTable
    {
        NSString *sql=@"create table if not exists StudentInfo(sid integer,username varchar(20),password varchar(20),score varchar(20))";
        //executeQuery 用来执行select语句
        
        BOOL b=[_database executeUpdate:sql];
        NSLog(@"b=%d",b);
    }
    
    -(void)creatAndInitDatabase
    {
        //ios安全机制 - 沙盒
        //(1). 每个应用内容都放在一个沙盒目录下面
        //(2). 每个应用只能修改沙盒目录下得文件,其他应用文件无法修改
        //(3). 默认文件夹 Documents,Library,tmp
        //开发: 自己创建的文件放在Documents下面
        
        //确定文件位置
        //当前文件夹: NSHomeDirectory()
    //    NSLog(@"home = %@",NSHomeDirectory());
    //    NSLog(@"%@",[[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSHomeDirectory() error:nil]);
        
        
        //设置路径
        NSString *path = [NSString stringWithFormat:@"%@/Documents/stuInfo.sqlite",NSHomeDirectory()];
        //创建数据库(如果不存在则创建打开,如果存在则直接打开)
        _database = [[FMDatabase alloc] initWithPath:path];
        if(![_database open])
        {
            NSLog(@"打开失败");
            return;
        }
        
        NSLog(@"打开成功");
        
    }

    4.显示结果

  • 相关阅读:
    关于 Node.js: 所有PHP开发人员应该知道的5点
    HTML5网站大观:分享8个精美的 HTML5 网站案例
    一些新的 UI 图免费下载
    用HTML5/CSS3/JS开发Android/IOS应用
    Why C++ ? 王者归来
    响应式网页设计
    60款很酷的 jQuery 幻灯片演示和下载
    25 JavaScript的幻灯片用于在Web布局的精彩案例
    10个帮助你优化网站的 .htaccess 技巧
    视差滚动在网页设计中应用的21个优秀案例
  • 原文地址:https://www.cnblogs.com/SuperHanks/p/4390633.html
Copyright © 2011-2022 走看看