ios sqlite3的简单使用
第一:创建表格
//创建表格
-(void)creatTab{
NSString*creatSQL=@"CREATE TABLE IF NOT EXISTS PERSIONFO(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,AGE TEXT, SEX TEXT,WEIGHT INTEGER,ADDRESS TEXT)";
char *ERROR;
if (sqlite3_exec(database,[creatSQL UTF8String], NULL, NULL, &ERROR)!=SQLITE_OK) {
sqlite3_close(database);
NSAssert(, @"creat table faild!");
NSLog(@"创建表格失败");
}
}
解释:CREATE TABLE IF NOT EXISTS PERSIONFO 如果没有名称为:PERSIONFO的表,建个表PERSIONFO
ID INTEGER 列名:ID 类型:long int PRIMARY KEY 名为主键 AUTOINCREMENT 自动加一,并产生sqlite_sequence
sqlite3_exec(database,[creatSQL UTF8String], NULL, NULL, &ERROR) 参数1.sqlite3类 参数2.sql语句 参数3.回调函数 参数4.回调函数的第一个参数 参数5.错误
数据类型:
- NULL - 空值
- INTERGER - 有符号整数类型
- REAL - 浮点数类型
- TEXT - 字符串(其编码取决于DB的编码)
- BLOB - 二进制表示
第二:打开数据库
-(void)creatSqlite{
if(sqlite3_open([[self dataFilePath] UTF8String],&database)!=SQLITE_OK){
sqlite3_close(database);
NSAssert(, @"open database faid");
NSLog(@"数据库创建失败");
};
}
解释:sqlite3_open([[self dataFilePath] UTF8String],&database) 打开数据库:参数1.地址 urf8类型 参数2.数据库类的地址
第三:插入数据
-(void)insertData{
NSString*sql1=[NSString stringWithFormat:@"INSERT INTO '%@' ('%@','%@' ,'%@') VALUES ('%@','%@','%@')",@"PERSIONFO",@"NAME",@"AGE",@"SEX",@"张三",@"",@"西城区"];
char *err;
if (sqlite3_exec(database, [sql1 UTF8String], NULL, NULL, &err)!=SQLITE_OK) {
sqlite3_close(database);
NSLog(@"数据库操作失败!");
NSLog(@"%s",err);
}
}
解释:INSERT INTO tablename 向tablename表内的(列名称)VALUES 插入(相应的数据)
第四:查询
-(void)searchSqlite{
NSString*sqlQuery=@"SELECT * FROM PERSONINFO";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [sqlQuery UTF8String], -, &statement, NULL)==SQLITE_OK) {
while (sqlite3_step(statement)==SQLITE_OK) {
// char *name=(char*)sqlite3_column_text(statement, 1);
NSString*string=[NSString stringWithUTF8String:sqlite3_column_text(statement, )];
NSLog(@"%@",string);;
}
}
}
解释:SELECT * FROM PERSONINFO 从PERSONINFO中取出所有数据
sqlite3_prepare_v2(database, [sqlQuery UTF8String], -1, &statement, NULL) 参数1.数据库类 参数2.sql语句 参数3.字节的最大长度-1无限制 参数4.输出语句句柄 参数5.输出未使用部分指针 语句返回每行符合过滤的数据
sqlite3_step(statement) 每步获取一行数据
最后:关闭数据库
-(void)closeSqlite{
sqlite3_close(database);
}
ios sqlite3的简单使用的更多相关文章
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- ios下最简单的正则,RegexKitLite
ios下最简单的正则,RegexKitLite 1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中.备用地址:http://www.coco ...
- iOS中XMPP简单聊天实现 好友和聊天
版权声明本文由陈怀哲首发自简书:http://www.jianshu.com/users/9f2e536b78fd/latest_articles;微信公众号:陈怀哲(chenhuaizhe2016) ...
- iOS百度地图简单使用详解
iOS百度地图简单使用详解 百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口,还提供POI检索.路径规划.地图标注.离线地图.定位.周边雷达等丰 ...
- iOS设计模式 - (3)简单工厂模式
iOS设计模式 - (3)简单工厂模式 by Colin丶 转载请注明出处: http://blog.csdn.net/hitwhylz/article/ ...
- 我的Vue之旅 07 Axios + Golang + Sqlite3 实现简单评论机制
第三期 · 使用 Vue 3.1 + TailWind.CSS + Axios + Golang + Sqlite3 实现简单评论机制 效果图 CommentArea.vue 我们需要借助js的Dat ...
- iOS sqlite3数据库解析
看来从版本3.3.1基本上已经支持线程句柄的传递功能.具体限制我标记了一下.(6) Is SQLite threadsafe?SQLite is threadsafe. We make this co ...
- IOS开发之简单音频播放器
今天第一次接触IOS开发的UI部分,之前学OC的时候一直在模拟的使用Target-Action回调模式,今天算是真正的用了一次.为了熟悉一下基本控件的使用方法,和UI部分的回调,下面开发了一个特别简易 ...
- iOS百度地图简单使用
本文介绍三种接口: 1.基础地图2.POI检索3.定位 首先是配置环境,有两种方法,方法在官方教程里都有,不再多说 1.使用CocoaPods自动配置[这个方法特别好,因为当你使用CocoaPods配 ...
随机推荐
- Git 基本工作流程
1. 用户信息配置(全局配置) $ git config --global user.name leo$ git config --global user.email hehe_xiao@qq.com ...
- MyBatis 使用Generator自动生成Model , Dao, mapper
最近 我新建了一 个maven 项目,使用的是spring + springmvc + mybatis框架. 听说Mybatis可以自动生成model和mapper以及dao层,我就从网上查了查资 ...
- Extjs中grid前端分页使用PagingMemoryProxy【二】
在项目中遇到Grid前端分页,本人也是刚接触extjs没多久,为了实现效果,一直找了很久才实现出来,对于代码中的一些也不能详细的说明出来, 不知道能不能帮助到遇到同样问题的朋友,所以将例子代码 ...
- tp框架基础知识
作者:黄力军 index.php入口文件:作用,所有tp框架里的内容要想访问文件.都要走index.php文件他是整个程序的入口 Application代表应用程序的目录 所有写的应用程序放这里 ...
- weblogic 双机集群搭建
weblogic 双机集群搭建,基本步骤引用百度文库的一篇文章: wenlogic双机集群基本步骤 下面详解一下该文章搭建后会遇到的问题: 1. 主机名验证失败 javax.net.ssl.SSLKe ...
- C++ IO学习
关于IO,主要有这么三种类型:标准输入输出,文件输入输出,字符串流.后面两种都是继承自第一种标准输入输出的.他们分别对应的头文件是: 标准输入输出:#include <iostream> ...
- Solr field alias
Field alias Any field, function, or transformer can be displayed with a different name in the output ...
- 双系统删除Ubuntu后出现grub界面而无法正常启动Windows系统的解决方法
第一次安装双系统的时候由于不怎么会弄,设置了ubuntu引导windows,这种方法是非常不推荐的,因为当ubuntu出现问题或者是当你不再使用ubuntu的时候,删除ubuntu就会成为一个很麻烦的 ...
- C++ Primer 5 CH2 变量和基本类型
C++ 是一种静态数据类型语言,它的类型检查发生在编译时.因此,编译器需要知道每一个变量对应的数据类型. 2.1 基本内置类型 算术类型 C++ 标准并没有规定带符号类型应如何表示,但是约定了在表示范 ...
- HDFS入门(1)
2015.07.12笔记 1.HDFS Distributed File System(操作系统实现人机交互,最重要的功能是文件管理,使用文件管理系统,windows.Linux文件管理系统有共性:用 ...