亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS中sqlite數據庫的原生用法

2020-07-26 03:21:07
字體:
來源:轉載
供稿:網友

在iOS中,也同樣支持sqlite。目前有很多第三方庫,封裝了sqlite操作,比如swift語言寫的SQLite.swift、蘋果官網也為我們封裝了一個框架:CoreData。

它們都離不開Sqlite數據庫的支持。

本文主要介紹下,如何在swift中使用原生的sqlite的API。

在Xcode中引入sqlite API
新建一個swift項目后,我們需要讓項目引入sqlite的動態鏈接庫:

1、項目配置界面,選擇Build Phases

2、點開Link Binary With Libraries,點擊+號,在彈窗中輸入sqlite3

完成后:

3、創建橋接文件,在項目目錄下新建一個頭文件(h):

4、然后使用import導入sqlite庫:

#import "sqlite3.h"


5、最后一步,在項目配置界面,選擇Build Setting,搜索框中輸入swift,在結果中選擇Objective-C Bridging Header,輸入剛才新建的橋接文件的名稱:

整個引入工作已經完成了,可以測試下是否引入成功,在swift文件中,輸入sqlite3,看是否有sqlite3相關的智能提示出來。

創建(打開)與關閉數據庫
要創建或者打開一個sqlite數據庫,使用sqlite3_open方法,我們無需手動創建一個數據庫文件,如果沒有文件,sqlite3_open方法會為我們自動創建數據庫文件,然后打開數據庫。

//數據庫存放路徑let sqlitepath = NSHomeDirectory().stringByAppendingPathComponent("Documents/sqlite3.db")//打開數據庫,指定數據庫文件路徑,如果文件不存在后先創建文件,再打開,所以無需手動創建文件let state = sqlite3_open(sqlitepath, &db)if state == SQLITE_OK{ println("打開數據庫成功")}else{ println("打開數據庫失敗")}

這里sqlite3_open方法的第二個參數是一個指針,是數據庫打開后返回的一個操作指針,通過使用它,我們可以對數據庫進行一系列的操作。我們先把它定義在外面,方便我們使用。

var db:COpaquePointer = niloverride func viewDidLoad() { super.viewDidLoad() ...}

創建表和刪除表
使用sqlite3_exec方法可以執行一段sql語句,主要就是sql語句的差異,其他都一樣:

//創建表let createtable = "create table if not exists students (id integer primary key autoincrement,nametext,stuId integer)"let result = sqlite3_exec(db, createtable, nil, nil, nil)if result == SQLITE_OK{ println("創建表成功")}//刪除表let removetable = "drop table studets"let result2 = sqlite3_exec(db, removetable, nil, nil, nil)if result2 == SQLITE_OK{ println("刪除表成功")}

插入更新刪除數據
插入數據使用了占位符,sql語句中使用問號代表值。使用sqlite3_bind_xxx來綁定值。

//插入數據let inserttable = "insert into studets (stuId,name) values(?,?)"var statement:COpaquePointer = nillet result3 = sqlite3_prepare_v2(db, inserttable, -1, &statement, nil)if result3 == SQLITE_OK{ //綁定數據 sqlite3_bind_int(statement, 1, 1) sqlite3_bind_text(statement, 2, "lijialong", -1, nil)  //執行 if sqlite3_step(statement) == SQLITE_DONE{  println("數據插入成功") } sqlite3_finalize(statement) }

更新數據也類似幾個步驟:

let updatetable = "update studets set name ='ss' where id = 1"var statement:COpaquePointer = nilsqlite3_prepare_v2(db, updatetable, -1, &statement, nil)sqlite3_step(statement)sqlite3_finalize(statement)

刪除數據:

let deleterow = "delete from studets where name='lijialong'"sqlite3_prepare_v2(db, deleterow, -1, &statement, nil)sqlite3_step(statement)sqlite3_finalize(statement)

查詢數據

//查詢數據let query = "select * from studets"http://這條執行后,數據就已經在sattement中了sqlite3_prepare_v2(db, query, -1, &statement, nil)//游標往下走一步,如果返回SQLITE_ROW就進入while sqlite3_step(statement) == SQLITE_ROW{ let id = sqlite3_column_int(statement, 0) let stuId = sqlite3_column_int(statement, 2)}

以上就是關于iOS中sqlite數據庫的原生用法詳細介紹,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产视频日韩| 亚洲精品久久在线| 久久精品亚洲国产| 欧美成人三级视频网站| 日韩欧美在线视频免费观看| 日韩欧美国产网站| 成人免费网视频| 国产成人精品综合久久久| 欧美另类极品videosbestfree| 日韩精品在线免费观看| 亚洲国产精品小视频| 久久久免费av| 夜夜嗨av色综合久久久综合网| 欧美壮男野外gaytube| 国产精品美女www爽爽爽视频| 国产91精品久久久| 亚洲精品wwwww| 91麻豆国产语对白在线观看| 欧美精品一本久久男人的天堂| 国产亚洲欧洲高清| 亚洲男女性事视频| 欧美电影免费播放| 日本一欧美一欧美一亚洲视频| 97久久超碰福利国产精品…| 91影院在线免费观看视频| 欧美激情a在线| 亚洲欧洲一区二区三区久久| 亚洲精品欧美日韩专区| 国产精品久久一| 国产精品丝袜高跟| 亚洲性视频网址| 久久天堂电影网| 热久久这里只有| 久久九九热免费视频| 国产91在线播放九色快色| 亚洲精品aⅴ中文字幕乱码| 91亚洲永久免费精品| 亚洲最大的av网站| 原创国产精品91| 欧美怡红院视频一区二区三区| 日韩精品亚洲视频| 欧美国产日韩二区| 国产成人avxxxxx在线看| 成人午夜在线影院| 国产精品综合久久久| 欧美一级视频一区二区| 亚洲综合中文字幕在线| 欧美精品亚州精品| 日韩大片免费观看视频播放| 日韩人在线观看| 亚洲欧美综合区自拍另类| 国产一区二区三区久久精品| 亚洲欧美日韩另类| 免费97视频在线精品国自产拍| 国产情人节一区| 亚洲高清久久网| 久久人91精品久久久久久不卡| 亚洲高清不卡av| 亚洲一区二区福利| 日韩欧美亚洲范冰冰与中字| 欧美日韩精品在线视频| 国产精品美女主播在线观看纯欲| 亚洲国产精品999| 精品国产乱码久久久久酒店| 91av免费观看91av精品在线| 成人福利免费观看| 影音先锋日韩有码| 亚洲欧美日韩视频一区| 91高潮在线观看| 国产精品欧美久久久| 国产精品无av码在线观看| 中文字幕日本欧美| 亚洲最新av在线| 在线视频日韩精品| 欧美激情久久久| 成人综合国产精品| 国产成人精品久久久| 成人免费视频网址| 俺去了亚洲欧美日韩| 一区二区亚洲欧洲国产日韩| 欧美日韩中国免费专区在线看| 欧美三级欧美成人高清www| 日本精品一区二区三区在线播放视频| 日韩欧美成人免费视频| 亚洲日韩第一页| 国产狼人综合免费视频| 国产精品69久久久久| 欧美日韩在线影院| 亚洲性线免费观看视频成熟| 国产一区二区动漫| 欧美有码在线观看视频| 亚洲国产91精品在线观看| 欧美成人sm免费视频| 欧美精品久久一区二区| 日本一欧美一欧美一亚洲视频| 国产婷婷色综合av蜜臀av| 成人激情视频在线| 欧洲成人午夜免费大片| 亚洲天堂第二页| 亚洲精品自产拍| 欧美最猛性xxxxx亚洲精品| 最新国产成人av网站网址麻豆| 亚洲国产精品va在线看黑人| 亚洲影视九九影院在线观看| 国产精品欧美日韩一区二区| 在线观看成人黄色| 精品色蜜蜜精品视频在线观看| 欧美亚洲成人免费| 亚洲品质视频自拍网| 日韩午夜在线视频| 日韩欧美在线中文字幕| 国产精品一区二区性色av| 国产精品18久久久久久麻辣| 欧美一级视频免费在线观看| 日韩久久午夜影院| 亚洲аv电影天堂网| 久久精品电影网站| 亚洲aaa激情| 97精品久久久| 中文字幕一区电影| 久久五月情影视| 91av在线免费观看| 久久久亚洲影院你懂的| 美日韩精品免费观看视频| 九九热精品视频| 日韩av免费网站| 亚洲一区中文字幕| 全球成人中文在线| 国产成人亚洲综合青青| 精品亚洲国产成av人片传媒| 日韩中文字幕亚洲| 久久精品成人动漫| 日韩在线资源网| 亚洲91av视频| 亚洲级视频在线观看免费1级| 日本久久久久久| 亚洲性视频网址| 2023亚洲男人天堂| 欧美精品激情在线观看| 国产精品丝袜视频| 国产精品美女网站| 久久久精品在线| 三级精品视频久久久久| 亚洲午夜精品久久久久久久久久久久| 国产精品久久视频| 亚洲精品免费av| 91高清视频免费观看| 亚洲国产中文字幕久久网| 国产精品视频999| 亚洲激情视频网站| 亚洲精品久久久久久久久| 一区二区欧美日韩视频| 日韩国产高清污视频在线观看| 欧美www视频在线观看| 欧美激情xxxx性bbbb| 国外日韩电影在线观看| 国产午夜精品麻豆| 久久精品国产91精品亚洲| 色av中文字幕一区| 国产精品白嫩初高中害羞小美女| 亚洲福利视频免费观看| 性亚洲最疯狂xxxx高清| 国产一区二区三区三区在线观看| 午夜精品一区二区三区在线视|