ios sqlite数据库操作
@interface MyViewController () {
// 数据库实例,代表着整个数据库
sqlite3 *_db;
}
@end @implementation MyViewController - (void)viewDidLoad
{
[super viewDidLoad]; [self openDB]; [self createTables]; for (int i = ; i<; 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, -, &stmt, NULL);
// 说明语句没有语法问题
if (result == SQLITE_OK) { // 如果返回值是ROW,代表读取到一行数据
while (sqlite3_step(stmt) == SQLITE_ROW) {
// 列号从0开始
int ID = sqlite3_column_int(stmt, ); char *name = (char *)sqlite3_column_text(stmt, ); int age = sqlite3_column_int(stmt, ); 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, -, &stmt, NULL); // 说明语句没有语法问题
if (result == SQLITE_OK) {
// 第2个int类型的参数用来指定第几列,从1开始
// 绑定name字段的值
sqlite3_bind_text(stmt, , "mj", -, NULL); // 绑定age字段的值
sqlite3_bind_int(stmt, , ); // 执行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([filename UTF8String], &_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('mj', 10);
int result = sqlite3_exec(_db, sql, NULL, NULL, &error); if (result != SQLITE_OK) {
NSLog(@"创表错误:%s", error);
}
}
@end
ios sqlite数据库操作的更多相关文章
- IOS SQLITE 数据库操作
NSArray * array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); N ...
- iOS sqlite数据库实现(转)
转载自:http://www.cnblogs.com/macroxu-1982/archive/2012/10/01/2709960.html 1 实现过程添加libsqlite3组件 选择项目后,在 ...
- iOS 中SQLite数据库操作
在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...
- iOS - SQLite Database 操作数据库
iOS - SQLite Database 操作数据库 Sqlite 能被用在ios上做数据处理用,只要你懂得一点sql 就很容易使用sqlite 1:创建一个简单的View based appl ...
- 实验8 SQLite数据库操作
实验报告 课程名称 实验8 SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 学 时 一 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- [python]用Python进行SQLite数据库操作
用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ ]: u ...
- 安卓 SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
随机推荐
- js函数的属性和方法
js函数的属性和方法 前面的话 函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本文是深入理解j ...
- elasticsearch index 之 create index(-)
从本篇开始,就进入了Index的核心代码部分.这里首先分析一下索引的创建过程.elasticsearch中的索引是多个分片的集合,它只是逻辑上的索引,并不具备实际的索引功能,所有对数据的操作最终还是由 ...
- solr简介
Solr 是什么? Solr它是一种开放源码的.基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中. Solr 提供了层面搜索(就是统计).命中醒目显示并且支持多种输出格式(包 ...
- ocdefirst安装更新数据库
数据迁移(Migrations) 启用数据迁移在控制台中输入如下命令:Enable-Migrations 这时会在项目目录中增加一个Migrations文件夹,里面放置了两个文件:EF会通过C#代码的 ...
- Kinect 开发 —— 进阶指引 (下)
运动识别 利用运动识别(motion detection)来进行近景识别是最有意思的一种方式.实现运动识别的基本原理是设置一个起始的基准RGB图像,然后将从摄像头获取的每一帧影像和这个基准图像进行比较 ...
- ZJU 2425 Inversion
Inversion Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on ZJU. Original ID: ...
- WPF通用管理框架 项目客户端基础结构介绍
介绍 首先, 粗糙的展示一下目前的结构设计理念, 因为这几天一直在忙于工作, 所以跟进有些缓慢, 整体的设计是支持多种服务模式.目前只针对MSSQL做数据库接口, ORM选型则用的是微软的EF(PS: ...
- 亚马逊AWS的route53的收费,月费最低 0.9 USD
亚马逊AWS的route53的收费Amazon Route 53 定价 https://aws.amazon.com/cn/route53/pricing/ 一文中,对于一些术语的解释第一项收费--域 ...
- js06--利用js给数组去重
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 7lession-基础数据使用介绍
1.数值 这个使用比较简单 a = 1 b = 3.2 c = 12.5+4j d = 20L 2.字符串 代码 s = "hello world,i am comming" pr ...