Ios中SQLite3 0的簡單應用。。

2021-09-30 10:08:00 字數 3248 閱讀 4344

這兩天終於把sqlite資料庫在iphone中的應用搞懂了。。

下面是iphone程式中使用的部分**資訊:

第一部分:用於檢測該資訊中是否已存在mydatabase.sql資料庫資訊,若存在則直接開啟,若不存在則新建本資料庫檔案,然後在開啟該資料庫檔案。

-(bool)open

return yes;

} else

第二部分:建立表 ,可以由使用者設定主鍵和sqlserver一樣也可以設定自動增長資訊。

//建立學生表資訊

-(bool)createtablestudent:(sqlite3 *)db

//  nslog(@"delect table");

//表中設定主鍵可消除重複新增

nsstring *createsql=@"create table if not exists student(sid integer primary key autoincrement,name text,*** text,age integer)";

//  在sqlite中不可以直接使用字串資訊,必須使用utf8string進行資料格式轉化,但是至今不明白為什麼

//  這樣做

if (sqlite3_exec(db, [createsql utf8string], null, null, &errormsg)!=sqlite_ok)

nslog(@"studenttable is created successfuly"); 

//顯示建立成功

return yes;

第三部:初始化資料資訊(增加資料資訊),資料引數是從1開始的,values(?,?,?,?)使用問號作為佔位符,佔位符的資訊是從1開始計數的,這與查詢是得where語句後面的引數形式不是一致。

//學生表中初始化資料資訊

-(void)insertintostudenttable:(sqlite3 *)database

if (sqlite3_step(stmt)!=sqlite_done)

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

//10

if (sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

if(sqlite3_prepare_v2(database, insert, -1, &stmt, nil)==sqlite_ok)

if (sqlite3_step(stmt)!=sqlite_done)

nslog(@"count is %d",count); 

//使用nslog顯示資料插入的情況

第四部分:無引數查詢表資訊,設計思路,獲取表中全部資料,根據資料資訊進行分類分別儲存在不同動態資料中,然後將所用動態資料放在乙個動態資料組中用於返回資料載體。該思路所涉及的陣列比較多,也是最大缺點之一,也可以考慮使用實體類作為資訊載體,最後把實體類放在陣列中設為訊息。

//查詢資料庫中student表的資料資訊

-(nsmutablearray *)selectstudentinfotablefromdb:(sqlite3 *)db

} else

[studentarray addobject:sidarray];

[studentarray addobject: snamearray];

[studentarray addobject:s***array];

[studentarray addobject:sage];

return studentarray;

第五部分:設定帶參資訊查詢sqlite3_bind_int(stmt, 1, sid);用於設定引數資訊,引數資訊從1開始,而在

nsinteger sid=sqlite3_column_int(stmt, 0);

char *name=(char *)sqlite3_column_text(stmt, 1);

char ****=(char *)sqlite3_column_text(stmt, 2);

nsinteger age=sqlite3_column_int(stmt, 3);

是從0開始設定引數,這也是我犯錯誤的地方。。

//通過id資訊查詢詳細資訊

//帶引數資訊查詢

-(nsmutablearray *)selectstudentinfotablebyidfromdb:(nsinteger)sid

} else

return studentarray;

把**和自己的理解曬出來希望和有共同愛好的相互學習

ios簡單sqlite使用

sqlite是嵌入式的和輕量級的sql資料庫。sqlite是由c實現的。廣泛用於包括瀏覽器 支援html5的大部分瀏覽器,ie除外 ios android以及一些便攜需求的小型web應用系統。使用sqlite前的準備 使用sqlite是很多做ios開發中第一次面對c的情況,包括我。因為sqlite是...

ios簡單使用sqlite3

sqlite是嵌入式的和輕量級的sql資料庫。sqlite是由c實現的。廣泛用於包括瀏覽器 支援html5的大部分瀏覽器,ie除外 ios android以及一些便攜需求的小型web應用系統。使用sqlite前的準備 使用sqlite是很多做ios開發中第一次面對c的情況,包括我。因為sqlite是...

UIday1901 IOS中sqlite的使用

sqlite 嵌入式資料庫 1.持事件,不需要配置,不需要安裝,不需要管理員 2.持 部分sql92 3.完整的資料庫儲存在磁碟上 乙個 件,同乙個資料庫 件可以在不同機器上 使用,最大 持資料庫到2t 4.整個系統少於3萬行 少於250kb的記憶體佔 5.源 開發,5 有較好的注釋,簡單易用的ap...