iOS --SQL的增加、刪除、查找、修改


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM