iOS開發中的SQLite知識總結

iOS開發中的SQLite知識總結


更詳細的數據庫SQlite介紹:  http://mobile.51cto.com/iphone-388476.htm
                                                http://www.w3cschool.cc/sqlite/sqlite-group-by.html


 /Users/zhaochao/Library/Application Support/iPhone Simulator/7.1/Applications/07D17328-B63C-4D87-9B6C-03AA5CD681EA/Documents/zhaochao.sqlite, 就是 NSString *fileName=[NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",name]; 這個目錄。文件可以直接用SQLiteManager軟件打開,也可以在firefox瀏覽器中安裝sqlitemanager插件打開,如下圖 \

3.BaseDB.m

?
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
//
//  BaseDB.m
//  SqliteDemo
//
//  Created by 趙超 on 14-8-26.
//  Copyright (c) 2014年 趙超. All rights reserved.
//
 
#import"BaseDB.h"
@implementationBaseDB
 
/*
 *  獲取沙盒目錄
 *  name:追加的目錄aa
 *
 */
-(NSString*) DataBaseName:(NSString *) name {
     NSString *fileName=[NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",name];
    returnfileName;
}
/**
 *  選擇數據
 *  sql:查詢的SQL語句
 *  params:查詢SQL語句中的參數
 *  dataName:查詢數據庫名稱
 */
  
-(NSMutableArray*) selectSql:(NSString *)sql parmas:(NSArray *)params dataBaseName:(NSString *)dataName{
     
    sqlite3 *sqlite=nil;
    sqlite3_stmt *stmt=nil;
    //打開數據庫
    NSString *fileName=[self DataBaseName:dataName];
    intresult= sqlite3_open([fileName UTF8String], &sqlite);
    if(result!=SQLITE_OK) {
        NSLog(@"打開失敗");
        returnnil;
    }
    constchar* sqlCh=[sql UTF8String];
    //編譯SQL語句
    sqlite3_prepare_v2(sqlite, sqlCh, -1, &stmt, NULL);
    //綁定參數
    for(inti=0; i<params.count; i++)=""{=""nsstring=""*param="[params"objectatindex:i];=""sqlite3_bind_text(stmt,=""i+1,=""[param=""utf8string],=""-1,=""null);=""}=""執行查詢語句=""result="sqlite3_step(stmt);"nsmutablearray=""*resultdata="[NSMutableArray"array];=""遍歷結果=""while=""(result="=SQLITE_ROW)"nsmutabledictionary=""*resultrow="[NSMutableDictionary"dictionary];=""獲取字段個數=""int=""col_count="sqlite3_column_count(stmt);"for=""(int=""i="0;"i<col_count;=""獲取字段名稱=""const=""char*columname="sqlite3_column_name(stmt,i);"獲取字段值=""char*=""columvalue="(char*)"sqlite3_column_text(stmt,=""i);=""*columkeystr="[NSString"stringwithcstring:columname=""encoding:nsutf8stringencoding];=""*columvaluestr="[NSString"stringwithcstring:columvalue=""[resultrow=""setobject:columvaluestr=""forkey:columkeystr];=""[resultdata=""addobject:resultrow];=""關閉數據庫句柄=""sqlite3_finalize(stmt);=""關閉數據庫=""sqlite3_close(sqlite);=""nslog(@"查詢完!");=""return=""resultdata;=""**=""*=""執行sql語句,主要完成增加、修改、刪除=""sql:執行的sql語句=""params:sql語句中的參數=""dataname:數據庫名稱=""-(bool)=""execsql:(nsstring=""*)sql=""parmas:(nsarray=""*)params=""databasename:(nsstring=""*)dataname{=""sqlite3=""*sqlite="nil;"sqlite3_stmt=""*stmt="nil;"打開數據庫=""*filename="[self"databasename:dataname];=""&sqlite);=""if=""(result!="SQLITE_OK)"nslog(@"打開失敗");=""no;=""sqlch="[sql"utf8string];=""編譯sql語句=""sqlite3_prepare_v2(sqlite,=""sqlch,=""&stmt,=""綁定參數=""i<params.count;=""*parm="[params"[parm=""執行sql=""||=""nslog(@"執行sql語句失敗");=""nslog(@"執行成功!");=""yes;=""創建一個表=""-(void)createtable:(nsstring=""}else{=""error;=""null,=""&error);=""nslog(@"創建失敗");=""nslog(@"%s",error);="";=""nslog(@"創建成功");=""@end=""<=""pre=""><br>
<h3>4.調用格式</h3>
 
<preclass="brush:java;">   
    BaseDB *db=[[BaseDB alloc] init];
    //創建表
    NSString *dbCreate=@"create table zhaochao( username text primary key,userPasswd test)";
    NSString *dbName=@"zhaochao.sqlite";
   // [db createTable:dbCreate dataBaseName:dbName];
     
    //添加數據
    NSString *insertTable=@"insert into zhaochao (username,userPasswd) values (?,?)";
    NSArray  *insertParmas=@[@"acasdfaa",@"bb"];
   // [db execSql:insertTable parmas:insertParmas dataBaseName:@"zhaochao.sqlite"];
     
    //修改數據
    NSString *updateTable=@"update zhaochao set username=? where username=?";
    NSArray  *updateParams=@[@"admin",@"zhaochao"];
   // [db execSql:updateTable parmas:updateParams dataBaseName:@"zhaochao.sqlite"];
     
    //刪除數據
    NSString *deleteTable=@"delete from zhaochao where username=?";
    NSArray   *deleteParams=@[@"aa"];
   // [db execSql:deleteTable parmas:deleteParams dataBaseName:@"zhaochao.sqlite"];
     
    //查詢數據
    NSString *selectTable=@"select username,userPasswd from zhaochao where userPasswd=?";
    NSString *selectParam=@[@"bb"];
    NSArray *result=[db selectSql:selectTable parmas:selectParam dataBaseName:@"zhaochao.sqlite"];
    for(inti=0; i<result.count; i++)=""{=""nsmutabledictionary=""*arr="[result"objectatindex:i];=""nslog(@"%@",arr);=""}=""<=""pre=""><br>
<br>
 
<br>                        </result.count;></pre></params.count;>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章