<안드로이드>개발/안드로이드/App

[팁]기존에 생성된 (Sqlite3) DB를 안드로이드에서 이용하기 (예제)

소혼 2010. 9. 30. 22:49
반응형

관련 글1 : http://bunhere.tistory.com/140 [Widget][예제]ListView with CursorAdaptor
관련 글2 : http://bunhere.tistory.com/153 [팁]기존에 생성된 (Sqlite3) DB를 안드로이드에서 이용하기

생성된 DB를 사용하는 것과 관련된 질문들이 많아 예제 프로그램을 작성해보았습니다.

옛날 만들었던 ListView with CursorAdaptor의 코드를 거의 그대로 들고 왔으나, DB를 만드는 부분은 153번의 initialize를 사용했습니다.

1. DB를 준비하자

먼저 DB 파일이 있어야 할 것입니다.
SQLITE3을 통해 아래와 같이 만들었습니다.(리눅스에서)

필요하신 분들을 위해 해당 파일 첨부합니다.

SQLite version 3.6.16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table lecture (_id integer, name);
sqlite> insert into lecture values(1, 'ryuan');
sqlite> insert into lecture values(2, 'yesum');
sqlite> insert into lecture values(3, 'mindong');
sqlite> .q

2. 새 프로젝트를 만듭니다.
생성하는 방법은 익히 아실거라 생각됩니다. 중요한 것은 Package name입니다.
com.sohon.testDB 으로 패키지명을 정한 경우
해당 안드로이드 어플리케이션은 위 패키지 경로가 지정한 곳에 생깁니다.
그리고 /data/data/com.sohon.testDB 아래에 패키지 관련 파일들이 아래 그림과 같이 생기게 됩니다.
DDMS의 일부를 캡쳐한 화면입니다. 상단에 /data/data/는 다른 프로젝트들 떄문에 같이 캡쳐하지 못한 점 양해 부탁드립니다.

일단 위와 같이 새 프로젝트 정보를 입력하고 Finish를 누릅니다.
그러면 이클립스 개발환경이 뜹니다.

3. 코딩하기
ActTestDB.java 파일에 아래와 같은 내용을 코딩합니다
아래 내용은 관련글1과 관련글2의 내용을 합쳐놓은 코드와 유사합니다.
꼭 필요한 부분만 설명드리겠습니다. 관련글1,2를 참고하시기 바랍니다.

먼저 onCreate에서 initialze(this)를 통해 DB 파일을 asset으로부터, /data/data/com.sohon.testDB/databases 아래로 복사할 것입니다.

그리고 setAdaptor를 이용해 m_listbox에 DB를 연결합니다.
이것을 위해 수정해야 할 정보는 먼저 ROOT_DIR, DATABASE_NAME, TABLE_NAME 입니다.

실행하시면 아래와 같은 결과를 얻으실 수 있습니다.
에뮬레이터 resolution이 좀 이상한 것은 제 에뮬레이터 해상도를 이상하게 맞춰놔서 그렇습니다.(테스트용)


반응형

'개발 > 안드로이드/App' 카테고리의 다른 글

[팁] TextView 관련 팁들  (0) 2011.02.21
안드로이드 gles 첫번째 예제.  (0) 2010.11.02
안드로이드의 Lock  (0) 2010.09.10
[Widget] List View  (0) 2010.08.28
CursorAdaptor에서 getView?  (0) 2010.08.28