Develop
2013.04.23 17:13
[ios] Objective-C에서 SQLite 사용하기..
Views 14580 Comment 0
Attachment '4' |
---|
먼저 프로젝트를 windows based 로 생성합니다.
그다음에 아래와 같이 프레임워크를 우클릭하여 Add -> Existing Frameworks...을 선택합니다.
![1.png](https://hooni.net/xe/files/attach/images/207/340/002/adc5c9195e56439ca333b167b5cbf593.png)
그러면 창이 하나 나올텐데 여기에서 libsqlite3.0.dylib를 선택하여 Add버튼을 클릭합니다.
![2.png](https://hooni.net/xe/files/attach/images/207/340/002/40c998b15c6415b492adab5770e4c424.png)
간단하게 작업은 AppDelegate.m 파일에서만 하도록하겠습니다.
먼저 import 부분에 아래 구문을 추가합니다.
#import <sqlite3.h>
그 다음 아래 메소드에 코드를 추가합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //도큐먼트 디렉토리 위치를 얻는다. NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; //도큐먼트 위치에 db.sqlite명으로 파일패스 설정 NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"db.sqlite"]; //데이터베이스를 연결한다. //해당 위치에 데이터베이스가 없을경우에는 생성해서 연결한다. sqlite3 *database; if (sqlite3_open([filePath UTF8String], &database) != SQLITE_OK) { sqlite3_close(database); NSLog(@"Error"); } /* 테이블 생성 */ char *sql = "CREATE TABLE IF NOT EXISTS test (no INTEGER PRIMARY KEY NOT NULL, name VARCHAR)"; //sqlite3_exec 쿼리문을 실행할 수 있다. if (sqlite3_exec(database, sql, nil,nil,nil) != SQLITE_OK) { sqlite3_close(database); NSLog(@"Error"); } /* insert or update */ sqlite3_stmt *insertStatement; char *insertSql = "INSERT or REPLACE INTO test (no,name) VALUES(?,?)"; //프리페어스테이트먼트를 사용 if (sqlite3_prepare_v2(database, insertSql, -1, &insertStatement, NULL) == SQLITE_OK){ //?에 데이터를 바인드 sqlite3_bind_int(insertStatement, 1, 1); sqlite3_bind_text(insertStatement, 2, [@"test name" UTF8String], -1, SQLITE_TRANSIENT); // sql문 실행 if (sqlite3_step(insertStatement) != SQLITE_DONE) { NSLog(@"Error"); } } /* select */ sqlite3_stmt *selectStatement; char *selectSql = "SELECT no, name FROM test"; if (sqlite3_prepare_v2(database, selectSql, -1, &selectStatement, NULL) == SQLITE_OK) { // while문을 돌면서 각 레코드의 데이터를 받아서 출력한다. while (sqlite3_step(selectStatement)==SQLITE_ROW) { int no = sqlite3_column_int(selectStatement, 0); NSString *name = [NSString stringWithUTF8String: (char *)sqlite3_column_text(selectStatement, 1) ]; NSLog(@"no : %i, name : %@",no,name); } } //statement close sqlite3_finalize(insertStatement); sqlite3_finalize(selectStatement); //db close sqlite3_close(database); [window makeKeyAndVisible]; return YES; }
코드는 간략하게 주석을 달았으니 쉽게 이해할 수 있을 꺼라 생각합니다.
혹시 궁금하신 점있으시면 댓글달아주세요.
제가 아는 범위 또는 찾아볼 수 있는 범위안에서 설명해드리겠습니다.
실행을 하면 디버그콘솔창에 아래와 같은 결과가 나옵니다.
참고로 디버그 콘솔창은 커맨드키 + 쉬프트 + r 입니다.
그리고 소스도 올려드리겠습니다.
(별거는 없습니다 ;;)
![3.png](https://hooni.net/xe/files/attach/images/207/340/002/b583724a01b348fb8ed9c02b11ef8d5e.png)
[출처] 아이폰에서 sqlite사용하기(초간단 예제)|작성자 만쓰
[출처] http://blog.naver.com/rlarlaks21c/50097250975
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
385 | Develop |
[c]디렉토리 탐색
![]() |
hooni | 2003.04.23 | 7341 |
384 | Develop |
[c][php] 프로세스정보와 메모리 정보 웹으로 출력하는거..
![]() |
hooni | 2013.04.23 | 6347 |
383 | Develop |
[c][java] 주사선 채우기 알고리즘(scan line filling algorithm) 구현
![]() |
hooni | 2013.04.23 | 8991 |
382 | Develop |
[c][java] 소켓 프로그래밍(채팅 서버 C, 클라이언트 Java)
![]() |
hooni | 2003.04.23 | 7036 |
381 | Develop |
[c][java] 그래픽(graphic)관련 자료와 샘플코드..
![]() |
hooni | 2013.04.23 | 9218 |
380 | Develop |
[c][cpp] mfc, win32api, 예제 소스 대박 모음~
![]() |
hooni | 2013.04.23 | 8481 |
379 | Develop |
[c] 확인해 볼거.. ㅡ,.ㅡ;
![]() |
hooni | 2013.04.23 | 7175 |
378 | Develop | [c] 함수 요약 (검색해서 쓰세요..) | hooni | 2003.04.23 | 8835 |
377 | Develop |
[c] 함수 목록과 예제 소스 파일
![]() |
hooni | 2013.04.23 | 7211 |
376 | Develop | [c] 한글 문자열 출력 | hooni | 2015.11.10 | 1796 |
375 | Develop |
[c] 학생명단 관리 프로그램 소스 ㅋㅋ
1 ![]() |
hooni | 2003.04.23 | 7820 |
374 | Develop |
[c] 학교 건물 최단거리 찾는 웹 연동 프로그램
![]() |
hooni | 2013.04.23 | 6830 |