最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS中sqlite數(shù)據(jù)庫的原生用法

 更新時間:2016年05月05日 10:27:52   投稿:lijiao  
這篇文章主要為大家詳細介紹了iOS中sqlite數(shù)據(jù)庫的原生用法,sqlite數(shù)據(jù)庫相信各位早已耳聞,非常輕巧的一個數(shù)據(jù)庫,數(shù)據(jù)庫僅一個文件,即建即用,感興趣的小伙伴們可以參考一下3

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

它們都離不開Sqlite數(shù)據(jù)庫的支持。

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

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

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

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

完成后:

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

4、然后使用import導(dǎo)入sqlite庫:

#import "sqlite3.h"


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

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

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

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

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

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

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

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

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

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


更新數(shù)據(jù)也類似幾個步驟:

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

刪除數(shù)據(jù):

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

查詢數(shù)據(jù)

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

以上就是關(guān)于iOS中sqlite數(shù)據(jù)庫的原生用法詳細介紹,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • IOS 開發(fā)之UITableView 刪除表格單元寫法

    IOS 開發(fā)之UITableView 刪除表格單元寫法

    這篇文章主要介紹了IOS 開發(fā)之UITableView 刪除表格單元寫法的相關(guān)資料,這里提供實例幫助大家實現(xiàn)該功能,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • iOS開發(fā)-調(diào)用系統(tǒng)相機和相冊獲取照片示例

    iOS開發(fā)-調(diào)用系統(tǒng)相機和相冊獲取照片示例

    這篇文章主要介紹了iOS開發(fā)-調(diào)用系統(tǒng)相機和相冊獲取照片示例的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • IOS 繪制三角形的實例詳解

    IOS 繪制三角形的實例詳解

    這篇文章主要介紹了IOS 繪制三角形的實例詳解的相關(guān)資料,希望通過本文大家能夠?qū)崿F(xiàn)三角形的繪制,需要的朋友可以參考下
    2017-09-09
  • iOS App開發(fā)中使cell高度自適應(yīng)的黑魔法詳解

    iOS App開發(fā)中使cell高度自適應(yīng)的黑魔法詳解

    這篇文章主要介紹了iOS App開發(fā)中使cell高度自適應(yīng)的黑魔法詳解,作者利用iOS8以后的新特性講解了TableView、CollectionView中的cell高度自適應(yīng)以及UITextView輸入內(nèi)容實時更新cell高度的方法,需要的朋友可以參考下
    2016-03-03
  • IOS 開發(fā)之NSURL基本操作

    IOS 開發(fā)之NSURL基本操作

    這篇文章主要介紹了IOS 開發(fā)之NSURL基本操作的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • iOS開發(fā)網(wǎng)絡(luò)編程之?dāng)帱c續(xù)傳

    iOS開發(fā)網(wǎng)絡(luò)編程之?dāng)帱c續(xù)傳

    在下載較大的文件的時候,一次不能下載完畢,這就需要用到斷點續(xù)傳,那么在IOS開發(fā)中該如何實現(xiàn)呢,下面跟著小編一起通過本文來學(xué)習(xí)下。
    2016-08-08
  • iOS實現(xiàn)新年抽獎轉(zhuǎn)盤效果的思路

    iOS實現(xiàn)新年抽獎轉(zhuǎn)盤效果的思路

    這篇文章主要為大家詳細介紹了iOS實現(xiàn)抽獎轉(zhuǎn)盤效果的思路,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • iOS實現(xiàn)數(shù)字倍數(shù)動畫效果

    iOS實現(xiàn)數(shù)字倍數(shù)動畫效果

    在iOS開發(fā)中,制作動畫效果是最讓開發(fā)者享受的環(huán)節(jié)之一,下面這篇文章主要給大家介紹了關(guān)于iOS實現(xiàn)數(shù)字倍數(shù)動畫效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • iOS實現(xiàn)微信搖一搖功能

    iOS實現(xiàn)微信搖一搖功能

    這篇文章主要為大家詳細介紹了iOS實現(xiàn)微信搖一搖功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • IOS 靜態(tài)庫和Framework區(qū)別

    IOS 靜態(tài)庫和Framework區(qū)別

    這篇文章主要介紹了IOS 靜態(tài)庫和Framework區(qū)別的相關(guān)資料,這里對動態(tài)庫與靜態(tài)庫做比較,選擇什么時候使用庫文件,需要的朋友可以參考下
    2016-12-12

最新評論

永州市| 张家口市| 夏津县| 汤原县| 宜兰市| 通州市| 博罗县| 兴业县| 无锡市| 民权县| 精河县| 阜新| 西安市| 三都| 上思县| 蒙城县| 丽江市| 玉环县| 都兰县| 宝应县| 六盘水市| 获嘉县| 南和县| 新密市| 江都市| 八宿县| 海城市| 资兴市| 长宁区| 全南县| 临颍县| 开封市| 襄城县| 定南县| 三明市| 宜章县| 松江区| 邢台市| 红河县| 巫山县| 常熟市|