一、引入工具包

  引入工具包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); } } }

最新文章

  1. Linux系统目录结构以及简单说明
  2. 纪勇破解QQ号问题
  3. eclipse中java项目的build path详解
  4. nginx执行文件替换掉之后重启提示permission denied
  5. strlen() 函数
  6. nginx服务器防sql注入/溢出攻击/spam及禁User-agents
  7. 关于Java多态的总结.
  8. Epub2基础知识介绍
  9. PDO LIMIT bug
  10. java list基本用法
  11. SettingsProvider 它SettingsCache
  12. html 上传文件
  13. 实例分析ASP.NET在MVC5中使用MiniProfiler监控MVC性能的方法 
  14. [C# 基础知识系列]专题七: 泛型深入理解(一) (转载)
  15. React Native之code-push的热更新(ios android)
  16. 13.CrawlSpider类爬虫
  17. kinematic与static刚体不会触发任何接触回调
  18. [c.c.a.m.AgentManagerImpl] (AgentConnectTaskPool-39:ctx-c37090c5) Failed to handle host connection: java.lang.IllegalArgumentException: Can't add host: with h
  19. 贪心算法: Codevs 1052 地鼠游戏
  20. ubuntu 软件包管理工具 dpkg,apt-get,aptitude 区别

热门文章

  1. sublime text 3 配置python IDE
  2. AsyncTask onPreExecute方法用于在执行后台任务前做一些UI操作
  3. ansible的安装
  4. Go学习笔记(二)十分钟上手
  5. POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups / HDU 1699 Jamie's Contact Groups / SCU 1996 Jamie's Contact Groups (二分,二分图匹配)
  6. Spring Ioc-依赖注入的几种方式
  7. (转)Oracle中的rownum,ROWID的 用法
  8. 如何写出面试官欣赏的Java单例
  9. Spring阅读方法
  10. div+css命名规范大全