iOS数据库操作流程

  SQLite最新的版本是3.0,使用之前应该先导入libsqlite3.0.dylib

  1.导入流程

    

   

  2.iOS中操作数据库的流程

    打开数据库

    准备SQL数据库

    执行SQL数据库

    语句完结

    关闭数据库

  3.SQLite()使用的是C的函数接口

    

  4.创建数据库

  

-(void)createSQL{

    NSFileManager *manager = [NSFileManager defaultManager];

    if ([manager fileExistsAtPath:kDataBaseFilePath]) {
        NSLog(@"数据库不存在");
        return;
    }
    NSLog(@"%@",kDataBaseFilePath);
    [manager createFileAtPath:kDataBaseFilePath contents:nil attributes:nil];

    sqlite3 *sql =NULL;
    int openDbResult = sqlite3_open([kDataBaseFilePath UTF8String], &sql);

    if (openDbResult==SQLITE_OK) {
        NSLog(@"数据库打开成功");
    }
    else{

        NSLog(@"打开不成功");

        [manager removeItemAtPath:kDataBaseFilePath error:nil];
        return;
    }

     NSString *sqlString = @"CREATE TABLE user(id integer PRIMARY KEY AUTOINCREMENT, username text NOT NULL UNIQUE, password text NOT NULL);";

    char *errmsg = NULL;
    int exeResult = sqlite3_exec(sql, [sqlString UTF8String], NULL, NULL, &errmsg);

    if (exeResult == SQLITE_OK) {
        NSLog(@"表格成功被创建");

    }
    else{

        NSLog(@"失败");
        sqlite3_close(sql);
        [manager removeItemAtPath:kDataBaseFilePath error:nil];
        return;
    }
    sqlite3_close(sql);

}
  5.数据库的插入数据库

   

-(void)createSQL{

    NSFileManager *manager = [NSFileManager defaultManager];

    if ([manager fileExistsAtPath:kDataBaseFilePath]) {
        NSLog(@"数据库不存在");
        return;
    }
    NSLog(@"%@",kDataBaseFilePath);
    [manager createFileAtPath:kDataBaseFilePath contents:nil attributes:nil];

    sqlite3 *sql =NULL;
    int openDbResult = sqlite3_open([kDataBaseFilePath UTF8String], &sql);

    if (openDbResult==SQLITE_OK) {
        NSLog(@"数据库打开成功");
    }
    else{

        NSLog(@"打开不成功");

        [manager removeItemAtPath:kDataBaseFilePath error:nil];
        return;
    }

     NSString *sqlString = @"CREATE TABLE user(id integer PRIMARY KEY AUTOINCREMENT, username text NOT NULL UNIQUE, password text NOT NULL);";

    char *errmsg = NULL;
    int exeResult = sqlite3_exec(sql, [sqlString UTF8String], NULL, NULL, &errmsg);

    if (exeResult == SQLITE_OK) {
        NSLog(@"表格成功被创建");

    }
    else{

        NSLog(@"失败");
        sqlite3_close(sql);
        [manager removeItemAtPath:kDataBaseFilePath error:nil];
        return;
    }
    sqlite3_close(sql);

}

  

时间: 2024-10-03 23:15:11

iOS数据库操作流程的相关文章

[iOS]数据库第三方框架FMDB详细讲解

[iOS]数据库第三方框架FMDB详细讲解 初识FMDB iOS中原生的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较麻烦.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepersistentobjects等. FMDB是一款简洁.易用的封装库.因此,在这里推荐使用第三方框架FMDB,它是对libsqlite3框架的封装,用起来的步骤与SQLite使用类似,并且它对于多线程的并发操作进行了处理,所以

iOS 数据库升级

分享一段ios数据库代码.包括创建.升级.增删查改. 里面的那些类不必细究,主要是数据库的代码100%可用. 数据库升级部分,使用switch,没有break,低版本一次向高版本修改. // DB.h //iukey #import #import "sqlite3.h" #import "User.h" #import "ChatInfo.h" #import "DescInfo.h" @interface DBHelper

iOS 数据库操作(使用FMDB)

iOS 数据库操作(使用FMDB) iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁.易用的封装库,这一篇文章简单介绍下FMDB的使用. 在FMDB下载文件后,工程中必须导入如下文件,并使用 libsqlite3.dylib 依赖包.

iOS数据库操作之coredata详细操作步骤

CHENYILONG Blog iOS数据库操作之coredata详细操作步骤 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong iOS应用数据存取的常用方式 ? XML属性列表 -- PList? NSKeyedArchiver 归档 ?Preference(偏好设置) ? SQLite3? Core DataCore Data简介 ? Core Data 是iOS SDK 里的一个很强大的

IOS数据库FMDB增、删、改、查的使用【原创】

http://blog.it985.com/13588.html IOS数据库FMDB增.删.改.查的使用[原创] FMDB是一个XCODE的中一个轻量级的数据库,用于将网络资源存储在本地.所以,FMDB是一个很实用,很关键的知识点.在这里写了个简单的例子,基于FMDB的添删改查操作,代码可能比较乱,希望不要伤了各位的眼睛.其中添加删除更改的操作都非常简单,不需要做太多操作,只需要用到FMDB封装好的executeUpdate方法就行了. 第一步.加入sqlite3的包文件 如图所示,依次选择并

iOS 数据库多线程操作

SQLite是支持多线程操作的, 需要在初始化database是做一个线程安全的config,参考下面链接,看起来比较复杂. http://www.cnblogs.com/wfwenchao/p/3964213.html 很多iOS项目中都使用FMDB这个第三方开源库,但FMDB不能在多个线程中共同一个FMDatabase对象,因为这个类本身不是线程安全的,如果这样使用会造成数据混乱等问题. 如要需要多线程操作数据库,那么就需要使用FMDatabaseQueue来保证线程安全了. 首先用一个数据

iOS 数据库升级 如何进行操作?

在iOS开发中,经常会遇到数据库升级,修改删除表的某些字段,这就需要我们来进行处理了,下面分析两种数据库的升级处理问题! 1.比如:我们常使用fmdb或者其他方式创建sqlite数据库,但是由于版本迭代问题,常常有需求要更新数据库,比如加字段.删除.修改字段等等,怎么样才能升级数据库且保持原来存的数据有效呢,上代码: const static NSInteger FAMILY_LIST_DB_MANAGER_VER = 1; @implementation KSFamilyListDBManag

iOS数据库操作(使用FMDB)

iOS学习笔记(十六)——数据库操作(使用FMDB) 分类: iOS开发 2013-07-15 23:19 8655人阅读 评论(5) 收藏 举报 目录(?)[+] iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁.易用的封装库,这一

iOS数据库离线缓存思路和网络层封装

一直想总结一下关于iOS的离线数据缓存的方面的问题,然后最近也简单的对AFN进行了再次封装,所有想把这两个结合起来写一下.数据展示型的页面做离线缓存可以有更好的用户体验,用户在离线环境下仍然可以获取一些数据,这里的数据缓存首选肯定是SQLite,轻量级,对数据的存储读取相对于其他几种方式有优势,这里对AFN的封装没有涉及太多业务逻辑层面的需求,主要还是对一些方法再次封装方便使用,解除项目对第三方的耦合性,能够简单的快速的更换底层使用的网络请求代码.这篇主要写离线缓存思路,对AFN的封装只做简单的