Swift數據存儲(三)之SQLite

前言:SQLite輕量級數據庫在移動應用中使用非常普遍,但是目前的庫是C編寫的,為了方便使用,對SQLite相關的操作用Swift進行了封裝。這個封裝代碼使用了一個開源項目SQLiteDB---git

通過下面的一個實例來展示怎么簡單的使用SQLiteDB,讓我們了解和使用SQlite數據庫連接,創建表,查詢數據,插入數據等操作

一. 初期準備工作
① 搭建一個下圖界面:

界面.png

② 導入SQLiteDB的庫的文件與導入libsqlite3.0.tdb到項目中,如下圖
導包文件目錄.png

③ 創建連接頭文件SQLite-Bridging-Header.h
橋文件.png

二. 使用SQLiteDB
ViewController.swift代碼

import UIKit

class ViewController: UIViewController {

  var db:SQLiteDB!
  
  @IBOutlet weak var passWord: UITextField!
  @IBOutlet weak var userName: UITextField!
  override func viewDidLoad() {
    super.viewDidLoad()
    
    // 獲取數據庫實例
    db = SQLiteDB.sharedInstance
    // 如果表還不存在則創建表
    db.execute("create table if not exists Rookie_user(uid integer primary key,username varchar(30),password varchar(30))")
    // 數據庫版本號
    db.setDBVersion(2)
    // 打印版本號
    print(db.getDBVersion())
    // 如果有數據則加載
     initUser()
  }
  // 從SQLite加載數據
  func  initUser(){
    let data = db.query("select * from Rookie_user")
    if data.count > 0 {
      // 獲取最后一行數據顯示
      let user = data[data.count - 1]
      
      userName.text = user["username"] as? String
      passWord.text = user["password"] as? String
    }
  }
  
  //保存數據到SQLite
  func saveUser() {
    let uname = self.userName.text!
    let mobile = self.passWord.text!
    //插入數據庫,這里用到了esc字符編碼函數,其實是調用bridge.m實現的
    let sql = "insert into Rookie_user(username,password) values('\(uname)','\(mobile)')"
    print("sql: \(sql)")
    //通過封裝的方法執行sql
    let result = db.execute(sql)
    print(result)
  }

  @IBAction func saveBtn(sender: AnyObject) {
    saveUser()
 }
 }
// 打印db的地址:/Users/*****/Library/Developer/CoreSimulator/Devices/676CA4CF-2B1E-4091-9F78-BAEC80F18A0F/data/Containers/Data/Application/3E2F5783-67A9-40AB-9D6B-FED022862035/Documents/data.db

通過控制臺打印的結果路徑我們可以查看到我們自己建立的表,如下圖所示:


表.png

在輸入框中輸入我們用戶和密碼測試Demo,成功我們會在數據庫的表中看到我們添加的數據,下圖所示:

表中數據.png

其他存儲文章:
Swift數據存儲(一)

Swift中數據存儲之CoreData初探

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容