Programer/iOS

[Swift] 간편하게 DB접속하기 (SQLite)

아즈샤 2015. 9. 30. 16:20
반응형

서버 통신이 아닌 기기자체 파일 시스템을 이용해서 SQLite 에 접근하는 방법입니다.

let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]

let databaseURL = documentsURL.URLByAppendingPathComponent("sqlitedb")

let databasePath = databaseURL.path!

        

let filemgr = NSFileManager.defaultManager()

if !filemgr.fileExistsAtPath(databasePath as String) {

       //해당 파일 경로에 SQLite 파일이 정상적으로 생성되면 실행되는 구간


let testDB = FMDatabase(path: databasePath as String)


if testDB.open() {

let sql_stmt = "CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp DATETIME DEFAULT (DATETIME(CURRENT_TIMESTAMP, 'LOCALTIME')), date TEXT)"

              if !testDB.executeStatements(sql_stmt) {

                       print("Error1: \(testDB.lastErrorMessage())")

              }

               testDB.close()

              } else {

                       print("Error2: \(testDB.lastErrorMessage())")

      }

}


documentsURL은 유저의 문서 폴더의 위치 정보를 가지도록 합니다.

datebaseURL은 유저의 문서 폴더에 sqlitedb라는 파일을 추가 시켜 저장 시켜주도록 하고,


filemgr를 생성하여, 해당 경로에 sqlitedb 파일이 있는지 확인시켜 줍니다.


testDB로 해당 데이터 베이스를 연결해주고, open() 메소드를 통해 연결시도를 합니다.

sql문을 실행시켜주고 해당 값이 정상으로 들어가는 경우 close() 해주고

그렇지 않은 경우에는 에러 로그를 볼 수 있도로 print() 처리를 해줍니다.


참고로 Xcode에서 SQLite를 사용하기 위해서는 라이브러리를 추가해줘야 합니다.



반응형