IOS之【sqlite3数据库】

原创 2013年12月03日 21:44:00


@interface jamesWongViewController () {

    //数据库实例,代表着整个数据库

   sqlite3 *_db;

}

@end


@implementation jamesWongViewController


- (void)viewDidLoad

{

    [superviewDidLoad];

    

    [selfopenDB];

    

    [selfcreateTables];

    

   for (int i =0; i<10; i++) {

        //[self insertData];

    }

    

    

    [self findData];

    

    // 关闭数据库

    sqlite3_close(_db);

}


#pragma mark 查询数据

- (void)findData {

    char *sql ="select id,name,age from t_person;";

    

    sqlite3_stmt *stmt;

    

    // sqlite3_prepare_v2做一些插入数据的准备

    //主要是检查SQL语句的语法问题

   int result = sqlite3_prepare_v2(_db, sql, -1, &stmt,NULL);

    //说明语句没有语法问题

   if (result == SQLITE_OK) {

        

        // 如果返回值是ROW,代表读取到一行数据

       while (sqlite3_step(stmt) ==SQLITE_ROW) {

           // 列号从0开始

           int ID = sqlite3_column_int(stmt,0);

            

           char *name = (char *)sqlite3_column_text(stmt,1);

            

           int age = sqlite3_column_int(stmt,2);

            

           NSLog(@"id=%i,name=%s,age=%i", ID, name, age);

        }

        

    }else {

        NSLog(@"查询数据的SQL语句语法有问题");

    }

}


#pragma mark 插入数据

- (void)insertData {

    char *sql ="insert into t_person(name, age) values(?, ?);";

    

    sqlite3_stmt *stmt;


    // sqlite3_prepare_v2做一些插入数据的准备

    //主要是检查SQL语句的语法问题

   int result = sqlite3_prepare_v2(_db, sql, -1, &stmt,NULL);

    

    //说明语句没有语法问题

   if (result == SQLITE_OK) {

        //2int类型的参数用来指定第几列,从1开始

        // 绑定name字段的值

       sqlite3_bind_text(stmt, 1, "jamesWong", -1,NULL);

        

        // 绑定age字段的值

       sqlite3_bind_int(stmt, 2, 10);

        

        // 执行sql语句

       if (sqlite3_step(stmt) !=SQLITE_DONE) {

           NSLog(@"插入数据失败!");

        }else {

           NSLog(@"插入数据成功!");

        }

    }else {

        NSLog(@"插入数据的SQL语句语法有问题");

    }

}


#pragma mark 打开数据库

- (void)openDB {

    // 数据库文件路径

   NSString *filename = [@"sqlite.db"documentsAppend];

    

    //如果数据库不存在,就会创建一个

   int result = sqlite3_open([filenameUTF8String], &_db);

   if (result == SQLITE_OK) {

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

    }

}


#pragma mark 创建表

- (void)createTables {

    char *sql ="create table if not exists t_person(id integer primary key autoincrement, name text, age integer);";

    

   char *error;

    // sqlite3_exec能执行一切SQL语句

    // insert into t_person(name, age) values('jamesWong', 10);

   int result = sqlite3_exec(_db, sql,NULL, NULL, &error);

    

   if (result != SQLITE_OK) {

       NSLog(@"创表错误:%s", error);

    }

}

@end


版权声明:本文为博主原创文章,未经博主允许不得转载。

IOS-19-数据库操作之(SQLite)的基础入门使用及demo源码

前言:苹果IOS操作系统较常用的数据库有两种: 1.CoreData:苹果原生数据库,可视化编辑界面,易于后期不同开发人员维护,接触过Android的SQLite或者Sql语句的开发人员不太适应这种方...
  • IOT_LI
  • IOT_LI
  • 2015年10月23日 16:39
  • 1102

iOS9 sqlite3 执行查询语句十分缓慢的解决方案

一、问题来源我所就职的公司是一家医疗互联网企业,作为一名iOS开发,目前我参与开发迭代的是一款面向医生用户的APP,这款APP的主要功能之一就是随手记病历,前不久我们的运营同学接到用户反馈,在病历数量...
  • andanlan
  • andanlan
  • 2015年12月14日 00:03
  • 4161

iOS-SQLite在项目中实际使用(Objective-C)

实际开发中,掌握并熟练使用SQLite数据库对app内数据进行操作是移动开发人员至关重要的技能,iOS中封装的coreData固然也是对SQLite的二层封装,强大的https://github.co...
  • qiuxuewei2012
  • qiuxuewei2012
  • 2016年10月24日 14:55
  • 2613

iOS项目开发中常用到的数据库之sqlite3并对列表进行模糊查询

sqlite3 轻量级的数据库,这里就不过多的赘述,直接上代码;在这里之前呢,为了让程序结构清晰明了;这里的目录结构,一个主控制器(viewcontroller),一个工具类(ContactTool)...
  • whjay520
  • whjay520
  • 2016年09月02日 10:23
  • 528

IOS sqlite简单使用 以及为什么sqlite3_open无法创建数据库的原因

一、IOS数据存储方式 1.IOS中数据的存储方式有: 1)plist(NSArray、NSDictionary) 2)Preference(偏好设置,NSUserDefaulters) 3)...
  • smilefish12345
  • smilefish12345
  • 2015年12月29日 22:16
  • 1363

iOS学习之sqlite的创建数据库,表,插入查看数据

iOS sqlite数据库操作。步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1、...
  • majiakun1
  • majiakun1
  • 2015年10月20日 15:24
  • 842

iOS开发之数据存取-SQLite3

概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库。例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档、plist文件存储...
  • lo5sea
  • lo5sea
  • 2016年02月16日 10:47
  • 3930

iOS开发-------Sqlite3实现本地存储简易通讯录

最近几天整了下Sqlite3,也就是ios的另外一种储存方式,那么coreData是有什么不足么,不是,一般数据比较简易的时候是不会用coreData的,反而会用自身的sqlte3来实现本地的存储,这...
  • RunIntoLove
  • RunIntoLove
  • 2015年10月15日 16:26
  • 1362

iOS经典讲解之利用单例类封装对SQLite数据库增、删、查、改的操作

#import #import #import "LanOuStudent.h" @interface SQLiteManager : NSObject // 初始化方法 // 创建单例类 进行对...
  • Loving_iOS
  • Loving_iOS
  • 2015年09月16日 23:05
  • 1704

sqlite3创建数据库表

1、创建一个新的数据库:sqlite3     文件名 先建立一个 Db 目录,并在 Db 目录中创建一个 test.db 数据库文件,打开控制台窗口,命令如下: mkdir Db ...
  • not_give_up_
  • not_give_up_
  • 2017年08月03日 15:46
  • 784
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS之【sqlite3数据库】
举报原因:
原因补充:

(最多只允许输入30个字)