IOS开发之数据sqlite使用
| 一、引入工具包 |
引入工具包libsqlite3.dylib,该工具包为C语言工具包。
| 二、代码操作数据库 |
1、创建并且链接数据库

- (void) _connectDB{
//1>获取沙盒路径作为数据库创建时候的初始化路径
NSString * path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
path=[path stringByAppendingPathComponent:@"new.sqlite"];
NSLog(@"%@",path);
//2>如果存在则打开当前链接,如果不存在则创建
if(SQLITE_OK==sqlite3_open(path.UTF8String, &sqlite)){
NSLog(@"数据库创建成功!");
}else {
NSLog(@"数据库创建失败!");
}
}

2、操作数据库

/**
* 创建表
*/ - (void) _createTable{ NSString *create=@" create table if not exists t_Person (id integer primary key autoincrement,name text,age integer,tel text)";
[self _execSql:create andTip:@"创建表操作"]; }
/**
* 插入数据操作
*
* @param name 姓名
* @param age 年龄
* @param tel 电话
*/ - (void) _insertName:(NSString *) name andAge:(int )age andTel:(NSString *) tel{ NSString * insert=[NSString stringWithFormat:@" insert into t_Person(name,age,tel) values('%@',%d,'%@')",name,age,tel];
[self _execSql:insert andTip:@"插入操作"]; } /**
* 执行数据库操作
*
* @param sql 要执行的sql
* @param tip 要执行的操作标题
*/ - (void) _execSql:(NSString *) sql andTip:(NSString *) tip{ char * result;
if(SQLITE_OK==sqlite3_exec(sqlite, sql.UTF8String, NULL, NULL, &result)){
NSLog(@"%@成功!",tip);
}else{
NSLog(@"%@失败!",tip);
} }

3、查询数据库

/**
* 读取数据
*/ - (void)_readData{
//1> 定义sql语句
NSString * sql=@"select id,name,age,tel from t_person "; sqlite3_stmt * stmt=NULL;
//2> 检查语法的正确性
if(SQLITE_OK==sqlite3_prepare_v2(sqlite, sql.UTF8String, -1, &stmt, NULL)){ //3> 循环结果集取数据
while(sqlite3_step(stmt)==SQLITE_ROW){
//4>注意:取出来数据可以封装到集合中备用
int ID=sqlite3_column_int(stmt,0);
const unsigned char *name=sqlite3_column_text(stmt, 1);
int age=sqlite3_column_int(stmt, 2);
const unsigned char *tel=sqlite3_column_text(stmt, 3);
NSString * names=[NSString stringWithUTF8String:(const char *)name];
NSString * tels=[NSString stringWithUTF8String:(const char *)tel];
NSLog(@"%d,%@,%d,%@",ID,names,age,tels); } } }
IOS开发之数据sqlite使用的更多相关文章
- iOS开发系列--数据存取
概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...
- iOS开发数据库篇—SQLite简单介绍
iOS开发数据库篇—SQLite简单介绍 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1 ...
- iOS开发数据库篇—SQLite的应用
iOS开发数据库篇—SQLite的应用 一.简单说明 在iOS中使用SQLite3,首先要添加库文件libsqlite3.dylib和导入主头文件. 导入头文件,可以使用库中的函数(是纯C语言的) 二 ...
- IOS开发数据库篇—SQLite模糊查询
IOS开发数据库篇—SQLite模糊查询 一.示例 说明:本文简单示例了SQLite的模糊查询 1.新建一个继承自NSObject的模型 该类中的代码: // // YYPerson.h // 03- ...
- iOS开发数据库篇—SQLite常用的函数
iOS开发数据库篇—SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 * ...
- 【转】iOS开发系列--数据存取
原文: http://www.cnblogs.com/kenshincui/p/4077833.html#SQLite 概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储 ...
- 【转】 iOS开发数据库篇—SQLite简单介绍
开始学SQLite啦, 原文: http://www.cnblogs.com/wendingding/p/3868893.html iOS开发数据库篇—SQLite简单介绍 一.离线缓存 在项目开发中 ...
- iOS开发网络数据之AFNetworking使用
iOS开发网络数据之AFNetworking使用 如何选择AFNetworking版本 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少.AFNetw ...
- IOS开发中数据持久化的几种方法--NSUserDefaults
IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...
随机推荐
- win32SDK的hello,world程序(二)
接上篇,原生的控件都不太好看,所以决定自己画一个,稍微处理下消息就能用了.不过,美化这东西是需要天赋的.即使技术再好,没有对UI布局调整和良好的审美能力,做出来的东西还是很挫. 主要把消息逻辑和画的过 ...
- c# Activex开发之HelloWorld
最近需要在Web上使用WinFrom程序,所以要用到Activex技术将WinFrom程序变成插件在Web运行 一.创建用户控件 1.1 新建用户控件项目 1.2 在界面上拉一个label,Text赋 ...
- C/C++中对链表操作的理解&&实例分析
链表概述 链表是一种常见的重要的数据结构.它是动态地进行存储分配的一种结构.它可以根据需要开辟内存单元.链表有一个“头指针”变量,以head表示,它存放一个地址.该地址指向一个元素.链表中每一个元素称 ...
- 基于Json序列化和反序列化通用的封装
1. 最近项目已经上线了 ,闲暇了几天 想将JSON的序列化以及反序列化进行重新的封装一下本人定义为JSONHelp,虽然Microsoft 已经做的很好了.但是我想封装一套为自己开发的项目使用.方便 ...
- C# Datatable.Select()用法简介
dt为一个DataTable,以dt为例说明dt.select()方法的功能: 1.dt.Select() 获取所有行数 例:Datarow[] drs=dt.Select(); 此时drs为dt数据 ...
- jvm学习002 虚拟机类加载过程以及主动引用和被动引用
虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 类从被加载到虚拟机内存中开始,到卸载出内存为 ...
- SQL Server 2012 案例教程(贾祥素)——学习笔记
第2章 SQL Server 2012概述 1.SQL(Structed Query Language),结构化查询语言. 2.SSMS(SQL Server Mangement Studio),SQ ...
- 输出a-b之间的随机数并考虑异常
输出a-b之间的随机数并考虑异常 代码如下: package Day05;import java.util.Scanner;import java.util.Random; public class ...
- 让 Python 带你进入开源的世界——Git 从入门到与他人协作开发
让 Python 带你进入开源的世界--Git 从入门到与他人协作开发 我认为开源社区中有很多优秀的资源,并且可以帮助进阶中的程序员提高编程能力和水平.所以,我发起了<HelloGitHub&g ...
- React中的路由系统
React中的路由系统 提起路由,首先想到的就是 ASPNET MVC 里面的路由系统--通过事先定义一组路由规则,程序运行时就能自动根据我们输入的URL来返回相对应的页面.前端中的路由与之类似,前端 ...