服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - iOS sqlite对数据库的各种操作(日常整理全)

iOS sqlite对数据库的各种操作(日常整理全)

2021-01-12 16:10徒步天涯 IOS

在IOS中使用Sqlite来处理数据。如果你已经了解了SQL,那你可以很容易的掌握SQLite数据库的操作。本文给大家介绍iOS sqlite对数据库的各种操作,需要的朋友参考下吧

在ios中使用sqlite来处理数据。如果你已经了解了sql,那你可以很容易的掌握sqlite数据库的操作。ios对于数据库的操作:增加、删除、查找、修改具体介绍如下所示:

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

火狐找查找sqlite manager的步骤:

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

iOS sqlite对数据库的各种操作(日常整理全)

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

iOS sqlite对数据库的各种操作(日常整理全)

iOS sqlite对数据库的各种操作(日常整理全)

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

iOS sqlite对数据库的各种操作(日常整理全)

sqlite manager界面如图所示

iOS sqlite对数据库的各种操作(日常整理全)

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

•创建数据库

?
1
2
3
--数据库的建立
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

工程目录文件如下:

iOS sqlite对数据库的各种操作(日常整理全)

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

步骤如图:

iOS sqlite对数据库的各种操作(日常整理全)

iOS sqlite对数据库的各种操作(日常整理全)

iOS sqlite对数据库的各种操作(日常整理全)

iOS sqlite对数据库的各种操作(日常整理全)

•实现工程

viewcontroller.h

?
1
2
3
4
5
6
7
8
#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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#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对数据库的各种操作,希望对大家有所帮助,如果大家想了解更多有关ios sqlite相关知识请登录服务器之家网站了解详情,同时也非常感谢大家一直以来对服务器之家网站的支持!

延伸 · 阅读

精彩推荐
  • IOSiOS 雷达效果实例详解

    iOS 雷达效果实例详解

    这篇文章主要介绍了iOS 雷达效果实例详解的相关资料,需要的朋友可以参考下...

    SimpleWorld11022021-01-28
  • IOSiOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自...

    Swiftyper12832021-03-03
  • IOS关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    daisy6092021-05-17
  • IOSIOS 屏幕适配方案实现缩放window的示例代码

    IOS 屏幕适配方案实现缩放window的示例代码

    这篇文章主要介绍了IOS 屏幕适配方案实现缩放window的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    xiari5772021-06-01
  • IOSIOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解

    这篇文章主要介绍了IOS开发之字典转字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下...

    苦练内功5832021-04-01
  • IOSiOS布局渲染之UIView方法的调用时机详解

    iOS布局渲染之UIView方法的调用时机详解

    在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题,下面这篇文章主要给大家介绍了关于iOS布局渲染之UIView方法调用时机的相关资料...

    windtersharp7642021-05-04
  • IOS解析iOS开发中的FirstResponder第一响应对象

    解析iOS开发中的FirstResponder第一响应对象

    这篇文章主要介绍了解析iOS开发中的FirstResponder第一响应对象,包括View的FirstResponder的释放问题,需要的朋友可以参考下...

    一片枫叶4662020-12-25
  • IOSiOS中tableview 两级cell的展开与收回的示例代码

    iOS中tableview 两级cell的展开与收回的示例代码

    本篇文章主要介绍了iOS中tableview 两级cell的展开与收回的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    J_Kang3862021-04-22