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

 更新时间:2016年03月25日 09:42:39   作者:徒步天涯  
在IOS中使用Sqlite来处理数据。如果你已经了解了SQL,那你可以很容易的掌握SQLite数据库的操作。本文给大家介绍iOS sqlite对数据库的各种操作,需要的朋友参考下吧

在IOS中使用Sqlite来处理数据。如果你已经了解了SQL,那你可以很容易的掌握SQLite数据库的操作。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对数据库的各种操作,希望对大家有所帮助,如果大家想了解更多有关ios sqlite相关知识请登录脚本之家网站了解详情,同时也非常感谢大家一直以来对脚本之家网站的支持!

相关文章

  • 详解iOS - ASIHTTPRequest 网络请求

    详解iOS - ASIHTTPRequest 网络请求

    本篇文章主要介绍了iOS - ASIHTTPRequest 网络请求 ,详细的介绍了 ASIHTTPRequest的使用,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • iOS实现不规则Button点击效果实例代码

    iOS实现不规则Button点击效果实例代码

    这篇文章主要给大家介绍了关于iOS实现不规则Button点击的相关资料,文中通过示例代码介绍的非常详细,对各位iOS开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • iOS开发之APP相关

    iOS开发之APP相关

    本文给大家介绍的是IOS开发系列文章的第一篇,给大家分享一些APP相关的知识点,非常的实用,有需要的小伙伴可以参考下
    2016-04-04
  • iOS支付宝使用方法详解

    iOS支付宝使用方法详解

    这篇文章主要为大家详细介绍了iOS支付宝的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • IOS中手风琴表不能移动的解决方法

    IOS中手风琴表不能移动的解决方法

    本文给大家分享的是IOS开发中遇到的一个手风琴特效无法正常工作的问题的解决方法,经过度娘了很久才找到解决方法,这里推荐给大家,有需要的小伙伴可以参考下。
    2015-05-05
  • iOS 高效的分页加载实现示例

    iOS 高效的分页加载实现示例

    本篇文章主要介绍了iOS 高效的分页加载实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • safari cookie设置中文失败的解决方法

    safari cookie设置中文失败的解决方法

    下面小编就为大家带来一篇safari cookie设置中文失败的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 支持Xcode10和适配iPhone XS Max、iPhone XR的方法

    支持Xcode10和适配iPhone XS Max、iPhone XR的方法

    这篇文章主要介绍了支持Xcode10和适配iPhone XS Max、iPhone XR的方法,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • 基于iOS Realm数据库的使用实例详解

    基于iOS Realm数据库的使用实例详解

    下面小编就为大家分享一篇基于iOS Realm数据库的使用实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 详解IOS图层转场动画

    详解IOS图层转场动画

    这篇文章主要为大家详细介绍了IOS图层转场动画, CATransition类实现层的转场动画,能够为层提供移出屏幕和移入屏幕的动画效果,感兴趣的小伙伴们可以参考一下
    2016-02-02

最新评论