iOS客户端数据存储的方式有很多,下面主要是介绍苹果自带的sqlite3.0的使用方法。

首先导入sqlite3.0的框架。然后导入头文件#import <sqlite3.h>就行了

下面介绍怎么使用。直接上代码吧...

// 1: 设置数据库文件路径

NSString *dataBaseFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"MyFile"];

// 创建数据库 句柄

sqlite3 *db;

char *error;

// 2: 打开数据库。数据文件不存在时,自动创建文件

if (sqlite3_open([dataBaseFilePath UTF8String], &db) == SQLITE_OK) {

NSLog(@"数据库打开成功");

}

else {

NSLog(@"数据库打开失败");

// 3: 创建数据库表

NSString *createSql = @"create table if not exists myTable(id integer primary key autoincrement, name text, age integer, address text)";

if (sqlite3_exec(db, [createSql UTF8String], NULL, NULL, &error) == SQLITE_OK) {

NSLog(@"表创建成功");

} else {

NSLog(@"表创建失败: %s", error);

// 每次使用完毕清空 error 字符串,提供给下一次使用

sqlite3_free(error);

}

}

// 插入数据

NSString *insertSql = @"insert into myTable(name, age, address) values('小新', '8', '东城区')";

if (sqlite3_exec(db, [insertSql UTF8String], NULL, NULL, &error) == SQLITE_OK) {

NSLog(@"插入成功.");

} else {

NSLog(@"插入失败: %s", error);

// 每次使用完毕清空 error 字符串,提供给下一次使用

sqlite3_free(error);

}

// 修改记录

NSString *updateSql = @"update myTable set name = '小白', age = '10', address = '西城区' where id = 2";

if (sqlite3_exec(db, [updateSql UTF8String], NULL, NULL, &error) == SQLITE_OK) {

NSLog(@"修改成功.");

} else {

NSLog(@"修改失败: %s", error);

// 每次使用完毕清空 error 字符串,提供给下一次使用

sqlite3_free(error);

}

// 删除记录

NSString *deleteSql = @"delete from myTable where id = 3";

if (sqlite3_exec(db, [deleteSql UTF8String], NULL, NULL, &error) == SQLITE_OK) {

NSLog(@"删除成功");

} else {

NSLog(@"删除失败: %s", error);

// 每次使用完毕清空 error 字符串,提供给下一次使用

sqlite3_free(error);

}

// 查询记录

sqlite3_stmt *statement;

// @"select * from myTable"  查询所有 key 值内容

NSString *selectSql = @"select id, name, age, address from myTable";

if (sqlite3_prepare_v2(db, [selectSql UTF8String], -1, &statement, nil) == SQLITE_OK) {

while(sqlite3_step(statement) == SQLITE_ROW) {

// 查询 id 的值

int _id = sqlite3_column_int(statement, 0);

// 查询 name 的值

NSString *name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];

// 查询 age

int age = sqlite3_column_int(statement, 2);

// 查询 address 的值

NSString *address = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 3)];

NSLog(@"id: %i, name: %@, age: %i, address: %@", _id, name, age, address);

}

} else {

NSLog(@"查询失败.");

}

sqlite3_finalize(statement);

// 数据库关闭

sqlite3_close(db);



iOS 数据库sqlite3.0操作--超简单--看我就够啦的更多相关文章

  1. IOS数据库操作SQLite3使用详解(转)

    iPhone中支持通过sqlite3来访问iPhone本地的数据库.具体使用方法如下1:添加开发包libsqlite3.0.dylib首先是设置项目文件,在项目中添加iPhone版的sqlite3的数 ...

  2. 超简单使用批处理(batch)操作数据库

    超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...

  3. 使用iOS原生sqlite3框架对sqlite数据库进行操作

    摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用. 使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言 sqlit ...

  4. iOS开发中的4种数据持久化方式【二、数据库 SQLite3、Core Data 的运用】

                   在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运 ...

  5. IOS异步和多线程操作&&在sqlite3中的应用

    1,数据库I/O操作(异步) 数据库本身是存储在磁盘上.访问和修改数据库,即对磁盘进行读写,即I/O操作. 磁盘属于计算机硬件,具有DMA能力,不需要CPU干预,可以实现异步操作. I/O操作一般是消 ...

  6. iOS 数据库操作(使用FMDB)

    iOS 数据库操作(使用FMDB)   iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...

  7. IOS开发-封装数据库sqlite3之为何选择FMDB

    为什么使用第三方轻量级框架FMDB? FMDB是用于进行数据存储的第三方的框架,它与SQLite与Core Data相比较,存在很多优势. FMDB是面向对象的,它以OC的方式封装了SQLite的C语 ...

  8. ssh框架整合---- spring 4.0 + struts 2.3.16 + maven ss整合超简单实例

    一 . 需求 学了这么久的ssh,一直都是别人整合好的框架去写代码,自己实际动手时才发现框架配置真是很坑爹,一不小心就踏错,真是纸上得来终觉浅! 本文将记录整合struts + spring的过程 , ...

  9. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

    python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...

随机推荐

  1. 在线HTML文档编辑器使用入门之图片上传与图片管理的实现

    在线HTML文档编辑器使用入门之图片上传与图片管理的实现: 官方网址: http://kindeditor.net/demo.php 开发步骤: 1.开发中只需要导入选中的文件(通常在 webapp ...

  2. maven <repositories>标签,<pluginRepositories>标签

    在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等.每建立一个项 ...

  3. Javaweb之EL表达式

    1.EL表达式简介 EL全名为Expression Language.EL的主要作用为: 获取数据:EL表达式主要用于替换jsp页面中的脚本表达式,以从各种类型的web域中检索java对象,获取数据. ...

  4. Grid标签计算结果集中的合计行

    方法一: var detailT= grid.gettable("11"); var r=detailT.rows.length; detailT.rows[r-1].cells[ ...

  5. PAT 1082. Read Number in Chinese

    #include <cstdio> #include <cstdlib> #include <string> #include <vector> #in ...

  6. 通过mysql自动同步redis

    在服务端开发过程中,一般会使用MySQL等关系型数据库作为最终的存储引擎,Redis其实也可以作为一种键值对型的数据库,但在一些实际场景中,特别是关系型结构并不适合使用Redis直接作为数据库.这俩家 ...

  7. FLASK日志记录

    from flask import Flask from flask_restful import Resource, Api import logging app = Flask(__name__) ...

  8. CSS3弹性盒布局

    使用自适应的窗口弹性盒布局 可以使div总宽度等于浏览器宽度,而且可以随着浏览器的改变而改变. <!DOCTYPE html> <html lang="zh-CN" ...

  9. 1-2 Sass安装(windows版)

    在 Windows 平台下安装 Ruby 需要先有 Ruby 安装包,大家可以到 Ruby 的官网(http://rubyinstaller.org/downloads)下载对应需要的 Ruby 版本 ...

  10. 【Udacity】数据的差异性:值域、IQR、方差和标准差

    一.值域(Range) Range = Max - Min 受异常值(Outliers)影响 二.四分位差(IQR) 四分位距(interquartile range, IQR),又称四分差.是描述统 ...