(一一三)使用系统自带框架操作SQLite3数据库

系统自带的框架是基于C语言的,使用比较繁琐。

下面是使用步骤:

首先导入libsqlite3.0.dylib。

①在Document目录下打开数据库,如果没有则创建。

NSString *sqlitePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"test.sqlite"];
// 数据库不存在会自动创建
sqlite3 *db = NULL;
int state = sqlite3_open(sqlitePath.UTF8String, &db);
if (state == SQLITE_OK) {
    NSLog(@"打开数据库成功");
}else{
    NSLog(@"打开数据库失败");
}

②创建一张表和插入数据。

const char *sql = "CREATE TABLE IF NOT EXISTS t_product (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, price real);";
char *err = NULL;
sqlite3_exec(db, sql, NULL, NULL, &err);
sql = "INSERT INTO t_product (name,price) values ('饮料',10)";
sqlite3_exec(db, sql, NULL, NULL, &err);

③查询数据。

查询数据通过执行step让STMT从前到后抓取数据,拿到数据后可以转换为OC字符串再处理。

// 查询数据
// STMT会自动向后指数据
sqlite3_stmt *stmt = NULL; // STMT用来取出查询的结果
sql = "SELECT * FROM t_product";
state = sqlite3_prepare(db, sql, -1, &stmt, NULL);
if (state == SQLITE_OK) {
    NSLog(@"准备成功");
    while(sqlite3_step(stmt) == SQLITE_ROW){ // 成功取出一条数据
        const char *cname = (const char*)sqlite3_column_text(stmt, 1);// 第0列是id,取出第1列数据name
        const char *cprice = (const char*)sqlite3_column_text(stmt, 2);// 取出第2列数据price
        NSString *name = [NSString stringWithUTF8String:cname];
        NSString *price = [NSString stringWithUTF8String:cprice];
        NSLog(@"%@ %@",name,price);
    }

}else{
    NSLog(@"准备失败");
}

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

时间: 2024-08-06 07:58:25

(一一三)使用系统自带框架操作SQLite3数据库的相关文章

JFinal框架操作oracle数据库

JFinal框架操作oracle数据库,需要在configPlugin()方法中配置链接oracle数据库的相关配置 配置JFinal数据库操作插件,configPlugin方法 这里我加载jdbc.properties配置文件实在configConstant加载的 @Override public void configConstant(Constants me) { loadPropertyFile("jdbc.properties");//加载配置文件 me.setDevMode

electron安装操作sqlite3数据库(完整版)

仔细阅读我说的每一个字,要不然你可能会安装不成功. 以下是我解决安装sqlite3数据库的所有操作步骤,前提是,我的电脑已经装有Python3.5和vs2018了.我不知道安装这个sqlite会不会和这个有关,在我查找解决问题的时候,很多博客都提醒要安装,我也不知道要不要安装,如果你一下步骤你没有安装成功,那就可以参考安装一下Python和vs. 1.在操作sqlite3数据库之前你要有一个能运行的electron  Demo.如果没有请参考我的这篇文章. 2.在项目的根目录下运行(cmd最好都

sqlite3常用命令以及django如何操作sqlite3数据库

一.如何进入sqlite3交互模式进行命令操作? 1.确认sqlite3是否已经安装 进去python命令行,执行 >>> import sqlite3 >>> 没有报错,说明sqlite3已经成功安装了 2.如何进入sqlite3命令行 sqlite3 /path/to/dbname 直接执行sqlite3 加数据库名即可  ~ sqlite3 ~/Downloads/django_test/cmdb/db.sqlite3  sqlite3SQLite version

iOS之系统自带分享

1.前提导入系统自带框架<Social/Social.h> 步骤: 1>判断分享平台是否可用 2>创建分享控制器 3>弹出分享控制器 具体示例代码如下: 注意:使用系统自带分享需要注意几点: 1.分享平台有限 2.分享的链接不可以点击跳转 3.可以分享文字.图片.链接等

iOS: 学习笔记, 使用FMDatabase操作sqlite3

使用FMDatabase操作sqlite3数据库非常简单和方便 1 // 2 // main.m 3 // iOSDemo0602_sqlite3 4 // 5 // Created by yao_yu on 14-6-2. 6 // Copyright (c) 2014年 yao_yu. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 #import "FMDatabase.h" 11 12 void te

jQuery系列 第三章 jQuery框架操作CSS

第三章 jQuery框架操作CSS 3.1 jQuery框架的CSS方法 jQuery框架提供了css方法,我们通过调用该方法传递对应的参数,可以方便的来批量设置标签的CSS样式. 使用JavaScript设置标签的样式相对来说比较麻烦,而如果需要批量的设置多个标签的样式那需要写很多代码,使用jQuery可以为我们简化该过程.     使用原生的方式来设置标签的样式(代码示例) 1 <body> 2 <div>我是div标签</div> 3 <button id=

Ios二维码扫描(系统自带的二维码扫描)

Ios二维码扫描 这里给大家介绍的时如何使用系统自带的二维码扫描方法和一些简单的动画! 操作步骤: 1).首先你需要搭建UI界面如图:下图我用了俩个imageview和一个label 2).你需要在你当前的控制器中导入 #import <AVFoundation/AVFoundation.h> <AVCaptureMetadataOutputObjectsDelegate>代理 3).在@interface中定义 @property (nonatomic,strong)AVCapt

(一一四)使用FMDB操作SQLite数据库

上节介绍了用系统自带的C语言库操作SQLite的方法,比较繁琐,使用FMDB会大幅度简化,并且是面向对象的,使用十分方便. 使用步骤如下: 先从github下载FMDB框架,然后把它导入工程. ①导入libsqlite3.0.dylib库. ②导入主头文件FMDatabase.h. ③创建数据库对象,传入路径,打开数据库,如果数据库不存在会被创建. NSString *sqlitePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDir

IOS中通知中心NSNotificationCenter(自定义或系统自带)应用总结

一.了解几个相关的类 1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象. @property (readonly, copy) NSString *name; 这个成员变量定义一个对象,可以理解为针对某一个对象的消息. @property (readonly, retain) id object; 这个成员变量是一个字典,可以用其来进行传值. @property (readonly, copy) NSDi