Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีเข้าถึงฐานข้อมูล SQLite บน iPhone ด้วย Swift

การจัดเก็บข้อมูลเป็นสิ่งสำคัญในการพัฒนาแอป SQLite เป็นหนึ่งในวิธีที่นิยม บทความนี้สอนวิธีเข้าถึง SQLite บน iPhone อย่างง่ายด้วย Swift

SQLite เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่อยู่ใน C library แบบ Embedded

จะสร้างแอปตัวอย่าง: มี Text Field สำหรับกรอกชื่อ กดปุ่ม Insert จะบันทึกลง SQLite กดปุ่ม Show จะพิมพ์ข้อมูลใน Console

ขั้นตอนที่ 1: สร้างโปรเจกต์

Xcode → Single View Application → ชื่อ "DBSqlite"

ขั้นตอนที่ 2: ออกแบบ UI

Main.storyboard: เพิ่ม 1 Text Field และ 2 ปุ่ม

วิธีเข้าถึงฐานข้อมูล SQLite บน iPhone ด้วย Swift

ขั้นตอนที่ 3: สร้าง IBOutlet และ IBAction

@IBOutlet สำหรับ Text Field ชื่อ name @IBAction สำหรับปุ่ม Insert ชื่อ btnInsert และปุ่ม Show ชื่อ btnShowData

ขั้นตอนที่ 4: สร้างไฟล์ SQLite และเปิด Connection

ใน ViewController.swift:

import SQLite3

var db: OpaquePointer?

override func viewDidLoad() {
super.viewDidLoad()
let file_URL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("user_name.sqlite")
print(file_URL) // พิมพ์พาธไฟล์
// เปิดฐานข้อมูล
if sqlite3_open(file_URL.path, &db) != SQLITE_OK {
print("There's error in opening the database")
}
}

ขั้นตอนที่ 5: สร้างตาราง

// creating table
if sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)", nil, nil, nil) != SQLITE_OK {
let errorMsg = String(cString: sqlite3_errmsg(db)!)
print("There's error creating the table: \(errorMsg)")
}

ขั้นตอนที่ 6: เขียนโค้ด Insert ข้อมูล

@IBAction func btnInsert(_ sender: Any) {
var statement: OpaquePointer?
guard let user_name = name.text, !user_name.isEmpty else { return }
let query = "INSERT INTO users (name) VALUES (?) "
if sqlite3_prepare(db, query, -1, &statement, nil) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error preparing insert: \(errmsg)")
return
}
if sqlite3_bind_text(statement, 1, user_name, -1, nil) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("failure binding name: \(errmsg)")
return
}
if sqlite3_step(statement) != SQLITE_DONE {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("failure inserting users: \(errmsg)")
return
}
}

ขั้นตอนที่ 7: เขียนโค้ด Query ข้อมูล

@IBAction func btnShowData(_ sender: Any) {
let query = "SELECT * FROM users"
var statement: OpaquePointer?
if sqlite3_prepare(db, query, -1, &statement, nil) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error preparing insert: \(errmsg)")
return
}
while sqlite3_step(statement) == SQLITE_ROW {
let name = String(cString: sqlite3_column_text(statement, 1))
print(name)
}
}

ทดสอบ

รันแอป กรอกชื่อ "HELLO" กด Insert แล้วกด Show จะเห็น "HELLO" พิมพ์ใน Console

วิธีเข้าถึงฐานข้อมูล SQLite บน iPhone ด้วย Swift
วิธีเข้าถึงฐานข้อมูล SQLite บน iPhone ด้วย Swift