鍍金池/ 教程/ iOS/ iOS - SQLite 數(shù)據(jù)庫
iOS - Switches(切換/開關)
iOS - Labels(標簽)
iOS - Table View(表格視圖)
IOS - 攝像頭管理
iOS - Text View(文本視圖)
IOS - 開發(fā)環(huán)境配置
iOS教程
iOS - Twitter & Facebook
iOS - UI元素
iOS - iAd 整合
IOS - 應用程序調(diào)試
iOS - Split View(分割視圖)
iOS - Status Bar(狀態(tài)欄)
iOS - Navigation Bar(導航欄)
iOS - Tab bar(標簽欄)
IOS - 文件處理
IOS - 自動布局
iOS - Image View(圖像視圖)
iOS - 應用程序內(nèi)購買
iOS - Pickers(選取器)
iOS - Delegates實例
iOS - 創(chuàng)建第一個iPhone應用
iOS (iPhone, iPad)教程
iOS - 發(fā)送電子郵箱(Email)
iOS - View Transitions(視圖轉換)
iOS - 內(nèi)存管理
iOS - Icons(圖標)
iOS - 音頻和視頻
iOS - Storyboards(演示圖板演)
iOS - Buttons(按鈕)
iOS - Text Field(文本域)
iOS - Sliders(滑動條)
iOS - Scroll View(滾動視圖)
IOS - 輸入類型 文本字段
iOS - 位置處理
iOS - Accelerometer(加速度傳感器)
IOS - 快速入門
iOS - SQLite 數(shù)據(jù)庫
iOS - GameKit
IOS - 訪問地圖
iOS - Objective-C基礎
iOS - Toolbar(工具欄)
IOS - 動作和插座(Outlets)
iOS - Alerts(警示)
IOS - 通用應用程序

iOS - SQLite 數(shù)據(jù)庫

簡介

sqlite 可用于在 IOS 處理數(shù)據(jù)。只是使用 sqlite 的查詢,這使得它更容易為那些熟悉 SQL 查詢開發(fā)人員使用。

 

涉及的步驟

1. 創(chuàng)建一個簡單的 View based application

2. 選擇項目文件,然后選擇“目標”,選擇框架添加libsqlite3.dylib庫

3. 現(xiàn)在創(chuàng)建一個新的文件,通過選擇 File-> New -> File... -> select Objective-C 類并點擊“next"

4. 類命名為 DBManager 并作為 NSObject 的子類

5. 選擇“創(chuàng)建”.

6. 現(xiàn)在更新 DBManager.h 如下

#import <Foundation/Foundation.h>
#import <sqlite3.h>

@interface DBManager : NSObject
{
    NSString *databasePath;
}

+(DBManager*)getSharedInstance;
-(BOOL)createDB;
-(BOOL) saveData:(NSString*)registerNumber name:(NSString*)name 
  department:(NSString*)department year:(NSString*)year;
-(NSArray*) findByRegisterNumber:(NSString*)registerNumber;

@end

8. 現(xiàn)在更新DBManager.m 如下

#import "DBManager.h"
static DBManager *sharedInstance = nil;
static sqlite3 *database = nil;
static sqlite3_stmt *statement = nil;

@implementation DBManager

+(DBManager*)getSharedInstance{
    if (!sharedInstance) {
        sharedInstance = [[super allocWithZone:NULL]init];
        [sharedInstance createDB];
    }
    return sharedInstance;
}

-(BOOL)createDB{
    NSString *docsDir;
    NSArray *dirPaths;    
    // Get the documents directory
    dirPaths = NSSearchPathForDirectoriesInDomains
    (NSDocumentDirectory, NSUserDomainMask, YES);    
    docsDir = dirPaths[0];
    // Build the path to the database file
    databasePath = [[NSString alloc] initWithString: 
    [docsDir stringByAppendingPathComponent: @"student.db"]];
    BOOL isSuccess = YES;
    NSFileManager *filemgr = [NSFileManager defaultManager];    
    if ([filemgr fileExistsAtPath: databasePath ] == NO)
    {
        const char *dbpath = [databasePath UTF8String];        
        if (sqlite3_open(dbpath, &database) == SQLITE_OK)
        {
            char *errMsg;
            const char *sql_stmt =
            "create table if not exists studentsDetail (regno integer 
            primary key, name text, department text, year text)";            
            if (sqlite3_exec(database, sql_stmt, NULL, NULL, &errMsg) 
               != SQLITE_OK)
            {
                isSuccess = NO;
                NSLog(@"Failed to create table");
            }
            sqlite3_close(database);
            return  isSuccess;
        }
        else {
            isSuccess = NO;
            NSLog(@"Failed to open/create database");
        }
    }    
    return isSuccess;
}

- (BOOL) saveData:(NSString*)registerNumber name:(NSString*)name 
  department:(NSString*)department year:(NSString*)year;
{
    const char *dbpath = [databasePath UTF8String];    
    if (sqlite3_open(dbpath, &database) == SQLITE_OK)
    {