이번의 강좌는 잠깐 쉬어가는 편입니다. Database 개발 관련하여 글을 쓰다가 Motodev의 Database 기능을 사용해 봤는데, 생각보다 너무 좋습니다. 유용한 기능이 많아서 소개할까 합니다. 대부분 그림이니 맘 편하게 보시고 한 5분 정도만 투자하셔서 해 보시면 될 것 같습니다.

전체 강좌 목차

[강좌A01] Moteodev Studio를 이용한 안드로이드 개발 환경 구축 가이드
[강좌A02] 안드로이드 개발 참고 서적 소개
[강좌A03] Android 실전 개발 - 아이디어 / 기획 / Wireframe
[강좌A04] 안드로이드 실전 개발 - 아이콘 제작
[강좌A05] 안드로이드 실전 개발 - 레이아웃 및 리소스 : Part1
[강좌A06] 안드로이드 실전 개발 - 레이아웃 및 리소스 : Part2
[강좌A07] 안드로이드 실전 개발 - 리소스 해킹
[강좌A08] 안드로이드 실전 개발 - SQLite

[강좌A09] 안드로이드  실전 개발 - 데이터베이스 : Part1
[강좌A10] 안드로이드  실전 개발 - 데이터베이스 : Part2
[강좌A11] 안드로이드  실전 개발 - 데이터베이서 : Part3 (Motodev database)

1. Database 생성하기. 테이블 생성하기.

먼저, Motodev를 실행하고, Window > Open Perspective > Motodev Database 퍼스펙티브를 실행합니다.



왼쪽의 Motodev Database Explorer에서 우리 프로젝트인 Hangul2English를 선택한 후 우측마우스 > Create database.. 를 선택합니다.



데이터베이스명을 hangul2english.db라고 입력한 후 OK. 데이터베이스가 생성됩니다.
실제 데이터베이스는 프로젝트 디렉토리의 assets\ 하위에 생성됩니다. 테이블 생성을 위해서 생성한 DB를 아래 그림 처럼 선택하고 Connect 를 선택하여 DB에 연결합니다.



데이터베이스가 연결되면 파란색 아이콘이 생성됩니다. 우측마우스 > Create Table .. 선택합니다.



테이블명 및 컬럼 정보를 입력합니다.



테이블 정보 입력 완료된 화면입니다. Finish를 누르면 테이블이 만들어집니다.

2. DDL문 Generate 하기.

Motodev Database Explorer에서 생성한 db를 선택한 후 우측마우스 클릭 > Generate DDL을 선택하여 DDL문을 만들 수 있습니다.

3. DML 실행 및 테스트

Motodev Database에서는 SQL문도 처리가 가능합니다. Motodev Database Explorer에서 아래 그림과 같이 Open SQL Scrapbook을 선택하여 실행합니다.



열린 SQL Scrapbook 에디터에서 SQL문을 실행하면 하단 Grid에 결과가 나타납니다.<아래그림>


4. Create Database Management Classes..

정말 좋은 기능은 이 기능입니다. Database 관련 class를 자동으로 만들어 줍니다.
아래 그림처럼Motodev Database Explorer에서 Create Database Management Classess.. 를 실행합니다.



필요한 정보를 수정한 후 Finish 누르면……짜자잔~


2개의 class가 만들어 졌습니다. Generate 된 소스는 길어서  캡처하지 않았습니다. 한 번 해보시기 바랍니다.

일반적으로 Android database 개발은 다음과 같이 구분할 수 있습니다.

데이터베이스 생성 방식에 따라
1. Code.에서 DDL문 실행 – 일반적인 방식. 간단하고 초기 적재해야 될 데이터가 적은 경우.
2. Assets 폴더에 DB를 생성한 후 실행시에 DB 파일을 복사해서 처리하는 방식 – 초기 데이터가 많거나 DB구조가 복잡할 때 주로 사용함.

데이터베이스 관련 코드 개발 방식에 따라
1. Contents Provider – DB를 다른 어플과 공유해야 할 때, 혹은, 여러명이 개발할 때 주로 사용하는 방식으로 DB 처리를 별도의 Provider로 제공하는 방법
2. 직접 DB Access – 직접 DB에 query를 실행하여 처리하는 방식

위에서 준 옵션으로 Class를 Generate 했을 때는 테이블명 + ContentProvider.java라는 이름의 Content Provider용 자바 코드가 만들어지며, 데이터베이스는 생성했기 때문에 asets\하위에 생성된 db 파일을 복사해서 db를 생성하도록 코드가 만들어졌습니다.

필요한 코드를 Motodev에서 다 만들어주니 일이 한결 수월해 지는 군요.
그리고 앞서 제가 개발한 DB소스에서 다루지 않은 두 부분으로만 코드가 만들어 졌으니 정말 딱입니다.

생성된 클래스 파일을 지우고, Generate Content Providers for each table 체크를 끄고 다시 코드를 Generate 해보니, Content Provider Code만 생성이 안되고 나머지 처리는 동일하게 진행이 되었습니다.

끝으로 Motodev Database를 이용하면 애뮬레이터나 폰에서 테스트 할 때 DB에 붙어서 Query를 실행하고 DDL문을 Generate하는 식의 작업이 가능합니다.

다음 화면은 제 애물레이터의 telephony provider의 mmssms.db의 테이블 스키마를 Motodev Database Explorer에서 확인한 화면입니다.



이로서 안드로이드 실전강좌 데이터베이스 편을 마칩니다. 곧 이어 Main UI 소스 부분도 오픈 됩니다.


  1. 이유진 2010.09.25 18:18

    안드로이드를 공부하면서 어플을 만들고 있는 학생입니다.질문이 하나 있는데요. 따로 디비를 만든것은 SQLite용으로 변환하여 사용 할려고 하는데 그방법을 모르겠습니다. 관련 자료나 소스 있으시면 kodog1022@naver.com으로 메일하나 날려주시면 고맙겠습니다 ^^;

  2. kenny 2010.11.19 08:15

    보고픈 글쓴이님 Eclipse에도 똑같은 기능을 쓸수있을까요? motodev만된다면, 갈아타야겠네요. 은근히 좋은 옵션인거같아보여요.

    • 보고픈 2010.11.20 10:09 신고

      Motodev를 이클립스 플러그인으로 설치하셔서 사용하시면 됩니다. 다운은 http://developer.motorola.com/docstools/motodevstudio/download/ 요기서 하시면 됩니다.

  3. kenny 2010.11.23 10:06

    보고픈님 감사합니다.저도 강좌를 보다 마음이 급해서 플러그인을 설치하고야말았어요.
    꽤 gui가 많이 변하거같으면서도 변한거는없이 플러그인설치로인해 옵션이 더많이늘어났네요. ^^
    자주얘기해요 보고픈님.

  4. ugg boots kids 2010.11.25 17:48

    Nothing is impossible to a willing heart。

  5. ugg boots kids 2010.11.25 17:50

    Nothing is impossible to a willing heart。

+ Recent posts