안드로이드

안드로이드 SqliteOpenHelper 내장 데이터베이스 Android sqlite 데이터베이스 생성 및 테이블 생성 및 데이터 입력과 확인

알통몬_ 2017. 6. 20. 10:01
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 


이번 포스팅에서는 안드로이드 SqliteOpenHelper 를 이용해 내장 데이터베이스 생성 방법과 테이블 생성 방법에 대해 알아보겠습니다.

SQLite 는 경량급 RDB 인데요 C언어로 되어있습니다.

안드로이드 프레임워크에 라이브러리와 함께 있기 때문에 별도의 설치는 필요하지 않습니다.


먼저 Sqlite 생성 방법입니다.

SQLiteOpenHelper 클래스를 상속받는 클래스를 하나 생성하면 됩니다.

저는 MainOpenHelper 라는 이름의 클래스를 생성했습니다.

그리고 클래스 내부에 생성자를 하나 만들어야하는데요.

생성자 내부 super의 매개값으로 아래 코드를 넣으면 됩니다.

super(context, 'db_name.db', null, version_number);

저는 데이터베이스 이름을 sample.db로 했기 때문에 sample이라는 이름의 데이터베이스가 생성되게 됩니다.

그리고 두 개의 메소드를 오버라이딩하시면 되는데요.

onCreate 는 맨 처음에 한 번만 실행이 되구요.

onUpgrade는 데이터베이스 버전을 업그레이드 시킬 때 사용됩니다.

저는 아래처럼 onCreate 에 info 테이블을 만들고 컬럼들로는 _id, name, id, pw 를 주었습니다.



그리고 나서 MainActivity 에 아래코드처럼 사용하시면 됩니다.



MainActivity 에서는 데이터베이스에 값을 입력하고 데이터를 검색하는 코드까지 넣어놨습니다.


먼저 MainOpenHelper 객체를 생성하고, SQLiteDatabase db 변수에 대입합니다.

db = mainOpenHelper.getWritableDatabase(); // 데이터 쓰기 작업을 할 때 호출합니다.

그리고 mysql 에서와 같이 sql문을 만들어주고

db.execSQL(sql); 을 호출하게 되면 데이터가 저장됩니다.

그리고 저장된 데이터를 확인하고 싶을 때는

db = mainOpenHelper.getReadableDatabase(); // 데이터 읽기 작업을 할 때 호출합니다.

위처럼 호출 후

Cursor cursor = db.rawQuary(sql문);

while(cursor.moveToNext())) {

    String name = cursor.getString(0);

            String id = cursor.getString(1);

            String pw = cursor.getString(2);

            Log.d("select ", "name : " + name + "\nid : " + id + "\npw : " + pw);

        }

처럼 가져와 데이터를 확인할 수 있습니다.

그리고 꼭 마지막에는 

cursor.close()로 커서를 닫아줘야 합니다.


다음은 데이터베이스가 정상적으로 생성되었는지 따로 DDMS로 확인하는 방법입니다.

Tools -> Android -> Android Device Monitor

에뮬레이터나 디바이스에 해당 프로젝트가 설치되어 있어야 합니다.

FileExplorer 탭에서 data/data/패키지이름.프로젝트름/databases 아래를 보면 아까 MainOpenHelper 클래스에서 생성한 sample.db를 볼 수 있습니다.

위 파일을 선택한 후 아래 사진처럼 PC로 꺼내올 수 있습니다.

그리고 아래 사이트에서 자신의 운영체제에 맞는 파일을 다운로드 받아주세요.

http://sqlitebrowser.org/


다운로드 하시고 .exe 파일을 실행시켜 프로그램을 설치합니다.

그리고 

아까 추출했던 .db 파일을 데이터베이스 열기로 여시면 위 사진처럼 info 라는 테이블이 생성된 걸

확인할 수 있습니다~


다음 포스팅에서는 이전에 다뤄봤던 회원가입과 로그인 부분을 좀 더 견고하게 만들어보겠습니다~

이전 포스팅 =>

2017/03/10 - [안드로이드] - 안드로이드 SQLite 회원가입과 로그인 확장


이상입니다.

반응형