原文链接:http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_8_Application_using_Swift_and_FMDB
首先去github上下载fmdb,https://github.com/ccgus/fmdb.git,打开项目后将fmdb复制到你自己的项目下
在将fmdb复制到Swift项目中时,会提示创建bridging header,
然后在创建的bridging header中引入FMDB.h文件
在viewController中创建界面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
class ViewController: UIViewController { @IBOutlet weak var name: UITextField! @IBOutlet weak var address: UITextField! @IBOutlet weak var phone: UITextField! @IBOutlet weak var status: UILabel! var databasePath = String() override func viewDidLoad() { super.viewDidLoad() } @IBAction func saveData(_ sender: AnyObject) { } @IBAction func findContact(_ sender: AnyObject) { } . . }
viewDidLoad()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
override func viewDidLoad() { super.viewDidLoad() let filemgr = FileManager.default let dirPaths = filemgr.urls(for: .documentDirectory, in: .userDomainMask) databasePath = dirPaths[0].appendingPathComponent("contacts.db").path if !filemgr.fileExists(atPath: databasePath as String) { let contactDB = FMDatabase(path: databasePath as String) if contactDB == nil { print("Error: (contactDB?.lastErrorMessage())") } if (contactDB?.open())! { let sql_stmt = "CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)" if !(contactDB?.executeStatements(sql_stmt))! { print("Error: (contactDB?.lastErrorMessage())") } contactDB?.close() } else { print("Error: (contactDB?.lastErrorMessage())") } } }
saveData()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
@IBAction func saveData(_ sender: AnyObject) { let contactDB = FMDatabase(path: databasePath as String) if (contactDB?.open())! { let insertSQL = "INSERT INTO CONTACTS (name, address, phone) VALUES ('(name.text!)', '(address.text!)', '(phone.text!)')" let result = contactDB?.executeUpdate(insertSQL, withArgumentsIn: nil) if !result! { status.text = "Failed to add contact" print("Error: (contactDB?.lastErrorMessage())") } else { status.text = "Contact Added" name.text = "" address.text = "" phone.text = "" } } else { print("Error: (contactDB?.lastErrorMessage())") } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
@IBAction func findContact(_ sender: AnyObject) { let contactDB = FMDatabase(path: databasePath as String) if (contactDB?.open())! { let querySQL = "SELECT address, phone FROM CONTACTS WHERE name = '(name.text!)'" let results:FMResultSet? = contactDB?.executeQuery(querySQL,withArgumentsIn: nil) if results?.next() == true { address.text = results?.string(forColumn: "address") phone.text = results?.string(forColumn: "phone") status.text = "Record Found" } else { status.text = "Record not found" address.text = "" phone.text = "" } contactDB?.close() } else { print("Error: (contactDB?.lastErrorMessage())") } }
近期评论