iOS对于数据库的操作:增加、删除、查找、修改

首先需要创建一个数据库:本程序的数据库是在火狐浏览器里的插件里写的微量型数据库

火狐找查找SQLite Manager的步骤:

第一步:在工具栏找到附加组件,点击进入

第二步:搜索 SQP,找到并下载,安装完成之后需要重启浏览器

第三步:在工具只乐观找到SQLite Manager,点击打开

SQLite Manager界面如图所示

注:SQLite Manager是微量型的数据库编程软件,所以一次只能执行一句代码!!!

  • 创建数据库
--数据库的建立
create table team
(
 -- 创建名字为team的table
  stu_id integer primary key autoincrement,
  stu_name varchar(100),
  stu_password varchar(100),
  stu_login varchar(100)
)
--添加信息
insert into team(stu_name,stu_password,stu_login) values('xiaming','123456','xm')
insert into team(stu_name,stu_password,stu_login) values('zhangsan','123456',' zs')
--查询信息
select *from team
--删除信息
delete from team where stu_id=3

工程目录文件如下:

这里需要导入一个系统自带的文件libsqlite3.0.tbd

步骤如图:

  • 实现工程

ViewController.h

#import <UIKit/UIKit.h>
#import <sqlite3.h>
@interface ViewController : UIViewController @property(strong,nonatomic)UIButton *showbtn;
@property(strong,nonatomic)UIButton *insertbtn;
@property(strong,nonatomic)UIButton *updatebtn;
@property(strong,nonatomic)UIButton *deletebtn; @end

ViewController.h

#import "ViewController.h"

#define PATH  [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"team.sqlite"]

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// 获取沙盒 Documents文件路径
NSLog(@"%@",[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]);
[self button]; } -(void)button
{
self.showbtn=[UIButton buttonWithType:UIButtonTypeSystem];
self.showbtn.frame=CGRectMake(100, 50, 200, 50);
[self.showbtn setTitle:@"数据库显示" forState:UIControlStateNormal];
[self.showbtn addTarget:self action:@selector(showSql) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.showbtn]; self.insertbtn=[UIButton buttonWithType:UIButtonTypeSystem];
self.insertbtn.frame=CGRectMake(100, 100, 200, 50);
[self.insertbtn setTitle:@"数据库添加" forState:UIControlStateNormal];
[self.insertbtn addTarget:self action:@selector(insertSql) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.insertbtn]; self.updatebtn=[UIButton buttonWithType:UIButtonTypeSystem];
self.updatebtn.frame=CGRectMake(100, 150, 200, 50);
[self.updatebtn setTitle:@"数据库修改" forState:UIControlStateNormal];
[self.updatebtn addTarget:self action:@selector(updateSql) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.updatebtn]; self.deletebtn=[UIButton buttonWithType:UIButtonTypeSystem];
self.deletebtn.frame=CGRectMake(100, 200, 200, 50);
[self.deletebtn setTitle:@"数据库删除" forState:UIControlStateNormal];
[self.deletebtn addTarget:self action:@selector(deleteSql) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.deletebtn];
} #pragma mark - 显示数据表中的所有信息
-(void)showSql
{
NSLog(@"显示数据库信息");
// 数据库
sqlite3 *db;
// 根据指定的数据库文件存储路径打开数据库
int result=sqlite3_open([PATH UTF8String], &db);
// 创建执行命令对象
sqlite3_stmt *stmt;
// 打开数据库成功
if (result==SQLITE_OK) {
NSLog(@"连接成功");
// 执行预处理命令
int res=sqlite3_prepare_v2(db, "select *from team", -1, &stmt, nil);
if (res==SQLITE_OK) {
// 循环遍历数据表的行信息
while (sqlite3_step(stmt)==SQLITE_ROW) {
// 获取数据表中整型列的信息
int stu_id=sqlite3_column_int(stmt, 0);
NSLog(@"stu_id is %d",stu_id);
// 获取数据表中字符型的列的信息
NSLog(@"%@",[NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, 1)]);
NSLog(@"%@",[NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, 2)] );
NSLog(@"%@",[NSString stringWithFormat:@"%s",sqlite3_column_text(stmt, 3)] );
}
}
}
} #pragma mark -增加信息
-(void)insertSql
{
sqlite3 *db;
sqlite3_stmt *stmt;
sqlite3_open([PATH UTF8String], &db);
int rst=sqlite3_prepare_v2(db, "insert into team(stu_name,stu_password,stu_login) values(?,?,?)", -1, &stmt, nil);
sqlite3_bind_text(stmt, 1, "wangwu", -1, nil);
sqlite3_bind_text(stmt, 2, "123456", -1, nil);
sqlite3_bind_text(stmt, 3, "ww", -1, nil); // 判断是否增加成功
if (rst==SQLITE_OK) {
if (SQLITE_DONE==sqlite3_step(stmt)) {
NSLog(@"add ok");
}else{
NSLog(@"add fail");
}
}
} #pragma mark - 修改数据库
-(void)updateSql
{
sqlite3 *db;
sqlite3_stmt *stmt;
sqlite3_open([PATH UTF8String], &db);
// 方法一
/*
int res = sqlite3_prepare_v2(db, "update team set stu_name=(?),stu_password=(?),stu_login=(?) where stu_id=2" , -1, &stmt, nil);
sqlite3_bind_text(stmt, 1, "xiaoming", -1, nil);
sqlite3_bind_text(stmt, 2, "123456", -1, nil);
sqlite3_bind_text(stmt, 3, "xm", -1, nil);
*/
// 方法二
int rst=sqlite3_prepare_v2(db, "update team setstu_name='zl',stu_password='zl123',stu_login='zhangsan' where stu_id=4", -1, &stmt, nil); // 判断是否修改成功
if (rst==SQLITE_OK) {
if (SQLITE_DONE == sqlite3_step(stmt)) {
NSLog(@" update ok");
}else{
NSLog(@"update fail");
}
}
} -(void)deleteSql
{
sqlite3 *db;
sqlite3_stmt *stmt;
sqlite3_open([PATH UTF8String], &db);
int rst=sqlite3_prepare_v2(db, "delete from team where stu_id=9", -1, &stmt, nil); // 判断是否删除成功
if (rst==SQLITE_OK) {
if (SQLITE_DONE==sqlite3_step(stmt)) {
NSLog(@" delete ok");
}else{
NSLog(@"delete fail");
}
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

iOS sqlite 的各种操作的更多相关文章

  1. iOS sqlite 使用事务操作数据库

    业务层代码: //将解析的更新人员数据批量同步到数据库 +(void)operateCompUsers:(NSMutableArray*)operateCompUsers { sqliteHelper ...

  2. iOS sqlite C语言操作

    利用周六时间看了一下关于sqlite的知识.在这记录一下.看的传智播客视频 对数据的操作基本上就是增删改查: static sqlite3 *db; //声明一个数据库 @implementation ...

  3. iOS - SQLite Database 操作数据库

    iOS - SQLite Database 操作数据库   Sqlite 能被用在ios上做数据处理用,只要你懂得一点sql 就很容易使用sqlite 1:创建一个简单的View based appl ...

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

    IOS开发-UI学习-sqlite数据库的操作 sqlite是一个轻量级的数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了,而且它的处理速度比Mysql.PostgreSQL这 ...

  5. 使用iOS原生sqlite3框架对sqlite数据库进行操作

    摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用. 使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言 sqlit ...

  6. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...

  7. iOS sqlite数据库实现(转)

    转载自:http://www.cnblogs.com/macroxu-1982/archive/2012/10/01/2709960.html 1 实现过程添加libsqlite3组件 选择项目后,在 ...

  8. ios sqlite的创建数据库,表,插入查看数据

    iOS sqlite数据库操作.步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1.新建项目sqliteDemo,添 ...

  9. iOS sqlite

    iOS sqlite数据库操作.步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1.新建项目sqliteDemo,添 ...

随机推荐

  1. Windows10自适应和交互式toast通知[1]

    阅读目录: 概述 toast通知的结构 视觉区域(Visual) 行为(Actions) 特定场景下的Toast通知 带多内容的通知 带行为的通知(例子1) 带行为的通知(例子2) 带文本输入框和行为 ...

  2. AKKA 笔记 - 有限状态机 -2

    AKKA 笔记 - 有限状态机 -2 原文地址: http://rerun.me/2016/05/22/akka-notes-finite-state-machines-2/ 在上一节的Akka FS ...

  3. 大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...

  4. 说说面向服务的体系架构SOA

    序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...

  5. 安卓与IOS移动段浏览器视频与音频的问题与总结

    1. 安卓.苹果移动浏览器上都不支持html5的视频与音频自动播放 2. 安卓.苹果移动浏览器要支持播放,前提是必须是用户触发的事件 3. 针对这个特殊的问题,代码需要在用户进来第一次屏幕触发中,去创 ...

  6. 【原】使用Bmob作为iOS后台开发心得——查询关联关系(BmobRelation)

    本文转载请注明出处 —— polobymulberry-博客园 简介 Bmob中的数据关联分为Pointer和Relation两种(数据关联在我开发app过程中使用还是很频繁的,也算个难点.虽然之前没 ...

  7. 前端学HTTP之网络基础

    × 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...

  8. [.NET] 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc

    开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc [博主]反骨仔 [原文地址]http://www.cnblogs.com/li ...

  9. JQuery 加载 CSS、JS 文件

    JS 方式加载 CSS.JS 文件: //加载 css 文件 function includeCss(filename) { var head = document.getElementsByTagN ...

  10. 增强学习(三)----- MDP的动态规划解法

    上一篇我们已经说到了,增强学习的目的就是求解马尔可夫决策过程(MDP)的最优策略,使其在任意初始状态下,都能获得最大的Vπ值.(本文不考虑非马尔可夫环境和不完全可观测马尔可夫决策过程(POMDP)中的 ...