iOS sqlite C语言操作

利用周六时间看了一下关于sqlite的知识,在这记录一下。看的传智播客视频

对数据的操作基本上就是增删改查:

static sqlite3 *db; //声明一个数据库
@implementation XSDBOperator

+ (void)initialize
{
    NSString *filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:@"student.sqlite"];  //数据库文件路径
    //如果文件存在,则打开数据库文件,如果不存在则创建,并且打开
    int result = sqlite3_open(filename.UTF8String, &db); //
    //判断是否打开数据库成功
    if (result == SQLITE_OK) {
        NSLog(@"打开数据库成功");
    }
    else
    {
        NSLog(@"打开失败");
    }
}
#pragma mark - 创建数据库表
+(BOOL)creatTable
{
    char *sql = "create table if not exists t_student (id integer primary key autoincrement,name text,age integer,score integer);";
    char *errorMesg = NULL;
    int result = sqlite3_exec(db, sql, NULL, NULL, &errorMesg);//用于操作数据库
    if (result == SQLITE_OK) {
        return YES;
    }
    else
    {
        NSLog(@"创建表失败,失败原因:%s",errorMesg);
        return NO;
    }
}

+(BOOL)insert
{
    char *sql = "insert into t_table (name,age) values('jack',20)";
    char *errorMesg = NULL;
    int result = sqlite3_exec(db, sql , NULL, NULL, &errorMesg);
    if (result == SQLITE_OK) {
        return YES;
    }
    else
    {
        NSLog(@"插入数据失败,失败原因:%s",errorMesg);
        return NO;
    }
}

+ (BOOL)updata
{
    char *sql = "updata t_table set age = 12";
    char *errorMesg = NULL;
    int result = sqlite3_exec(db, sql , NULL, NULL, &errorMesg);
    if (result == SQLITE_OK) {
        return YES;
    }
    else
    {
        NSLog(@"更新数据失败,失败原因:%s",errorMesg);
        return NO;
    }
}

+ (void)query
{
    char *sql = "select id,name,age from t_student;";
    //查询结果保存集合
    sqlite3_stmt *stmt= NULL;
    int result = sqlite3_prepare_v2(db, sql , -1, &stmt, NULL);
    if (result == SQLITE_OK) {
        NSLog(@"查询语句合法");
        while (sqlite3_step(stmt) == SQLITE_ROW) { //按照行进行遍历 直到取完为止
            int sid = sqlite3_column_int(stmt, 0); //取当前行出第几列的值
            const unsigned char *sname = sqlite3_column_text(stmt, 1);
            int sage = sqlite3_column_int(stmt, 2);
            NSLog(@"%d,%s,%d",sid,sname,sage);
        }
    }
    else
    {
        NSLog(@"查询语句不合法");
    }
}
@end
时间: 2024-12-25 23:29:02

iOS sqlite C语言操作的相关文章

IOS开发-UI学习-sqlite数据库的操作

IOS开发-UI学习-sqlite数据库的操作 sqlite是一个轻量级的数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了,而且它的处理速度比Mysql.PostgreSQL这两款著名的数据库都还快,在ios和安卓app中常用来完成对数据进行离线缓存的处理,如新闻数据的离线缓存. 它的基本操作步骤是: 1.先加入sqlite开发库libsqlite3.dylib, 2.新建或打开数据库, 3.创建数据表, 4.插入数据, 5.查询数据并打印, 6.关闭数据库, 具体操作步

Android &Swift iOS开发:语言与框架对比

转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 从Android到Swift iOS开发:语言与框架对比 我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还

IOS SQLite数据库

简介 在IOS中使用Sqlite来处理数据.如果你已经了解了SQL,那你可以很容易的掌握SQLite数据库的操作. 实例步骤 1.创建一个简单的View based application 2.选择项目文件,然后选择目标,添加libsqlite3.dylib库到选择框架 3.通过选择" File-> New -> File... -> "选择 Objective C class 创建新文件,单击下一步 4."sub class of"为NSObje

ios 常用字符串的操作

//将NSData转化为NSString        NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];//将NSString 转化为NSData (NSString.h)- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; //载一个字符串中删除一个字符或字符串[_display deleteCharacte

[Unity]SQLite-C#调用 SQLite数据库-Unity操作

SQLite数据库-Unity操作 项目开发的时候,经常会遇到的一种需求,数据存储 离线缓存的数据类型很多,大致分成两类 字符串文本数据 多媒体数据 字符串数据的类型只有字符串,但是结构有很多: xml json md5 base64 普通字符串 多媒体数据的类型: 图片(jpg,png,gif...) 音频(mp3,aif...) 视频(mp4,mpv) 通常用数据库来存储字符串文本类型的数据,但是需要注意的是数据库同时也能存储多媒体类型的数据 关系数据库 在一个给定的应用领域中,所有实体及实

李洪强漫谈iOS开发[C语言-043]-判断较早日期

李洪强漫谈iOS开发[C语言-043]-判断较早日期

Android中SQLite事务的操作

1.创建一个数据库帮助类. package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.

李洪强漫谈iOS开发[C语言-041]-计算月份天数

李洪强漫谈iOS开发[C语言-041]-计算月份天数 

QT SQLite 多数据库操作大全

QT SQLite 多数据库操作大全 一.单数据库模型 一般QT都是把打开一个缺省数据库连接,操作一个数据库连接,但是对Sqlite中频率修改容易加锁,因此有一种设计模式是把频率修改的表放在不同的数据库文件中,但这样要修改代码操作数据库部分 通常打开代码 http://developer.nokia.com/community/wiki/Creating_an_SQLite_database_in_Qt bool DatabaseManager::openDB() { // Find QSLit