태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'SQLite'에 해당되는 글 2건

  1. 2007.12.28 [Adobe AIR] SQLite 기초 강좌 (12)
  2. 2007.12.21 [Adobe AIR] SQLite
Adobe AIR2007.12.28 16:04


 

    <Adobe AIR SQLite 사용법>


    데이터베이스(DB) 대해 아시나요?


  1. 데이터베이스는 값들을 구조화하여 입력, 검색 등이 용이하게 만든 자료 저장소입니다..게임을 만들 점수를 저장할 수도 있고, 주소록의 이름과 전화번호 등을 저장할 수도 있습니다..


    그럼
    데이터베이스는 어떻게 구조화 할까요?

  2. 데이터베이스에는 여러 개의 테이블을 넣을 있고, 테이블에는 여러 개의 필드를 넣을 있으며, 필드는 여러 개의 컬럼을 넣을 있습니다..


    HTML
    페이지와 비교하면 이해가 빨리 같네요..

  3. 하나의 HTML 페이지(데이터베이스)에는 여러 개의 <table>(테이블) 넣을 있고, 각 <table>에는 여러 개의 <tr>(필드) 넣을 있고, <tr>에는 여러 개의 <td>(컬럼) 넣을 있습니다..


    데이터베이스는
    이해가 되었으니 이제 AIR에서 어떻게 DB 파일을 만들고 사용하는지 알아보겠습니다..


    일단
    , SQLite 대해 간단하게 설명드리죠..


    SQLite 하나의 파일로 데이터베이스이며, 기존 SQL 구문의 대부분을 지원하고, 비교적 상당히 빠릅니다..또한, 데이터 타입이 다른 DB(컬럼 중심) 달리 상당히 유연해서( 중심) 초보자가 다루기 편합니다..

    , 데이터 입력, 검색등이 많은 프로젝트나 상에서의 프로젝트에는 적합하지 않습니다..개인 또는 소규모의 사람들이 사용하는 프로그램의 DB로는 최상이라 있습니다..


    일단, DB파일로 사용할 파일 경로를 지정합니다..찾기 쉽도록 바탕화면에 만들죠..

    var file:File = File.desktopDirectory.resolvePath("test.db"); //바탕화면에 DB파일 생성


    그리고 중복 코드를 피하기 위해 쿼리를 실행하는 함수를 하나 만듭니다..

    function sendQuery(syntax:String, prefetch:int=-1,
    responder:Responder=null):void {
    //쿼리 실행

    var stm:SQLStatement = new SQLStatement();

    stm.sqlConnection = this.conn;

    stm.text = syntax;

    stm.execute(prefetch, responder); //prefetch : 가져올 데이터 개수(-1이면 모두), responder : 결과, 상태 Responder

    }


  4. DB 파일 만들기
  5. DB 파일이 없다면 생성한 다음 열고, 있다면 그냥 파일을 엽니다..

    var conn:SQLConnection = new SQLConnection(); //DB 연결합니다..

    conn.open(file);


  6. Table 생성
  7. DB 만들었으니 테이블을 생성해야겠죠? 테이블을 생성할 필드에 들어갈 컬럼 이름과 데이터 타입들을 함께 입력합니다..

    var syntax:String = "CREATE TABLE IF NOT EXISTS testTable (" +

    "no INTEGER PRIMARY KEY AUTOINCREMENT," +

    "title TEXT," +

    "url INTEGER" +

    ")";

    this.sendQuery(syntax);


  8. Table 확인
  9. 테이블이 실제 만들어졌는지 확인합니다..

    try {

    this.conn.loadSchema();

    var schemaResult:SQLSchemaResult = this.conn.getSchemaResult();

    if (schemaResult) {

    for(var obj:String in schemaResult.tables){

    var table:SQLTableSchema = schemaResult.tables[obj] as SQLTableSchema;

    trace("[" + table.name + "]", "스키마(Schema)");

    for(var prop:String in table.columns){

    var column:SQLColumnSchema = table.columns[prop] as SQLColumnSchema;

    trace("name:", column.name, ",dataType:", column.dataType, ",primaryKey:", column.primaryKey, ",allowNull:", column.allowNull, ",autoIncrement:", column.autoIncrement, ",defaultCollationType:", column.defaultCollationType);

    }

    }

    }

    } catch(e:Error) {

    trace("테이블이 없습니다.");

    }


  10. DB 만들어 졌습니다..간단하죠? 이제 데이터를 넣어보겠습니다..

    var syntax:String;

    syntax = "INSERT INTO testTable (title, url) VALUES ('Adobe AIR Devpia.', 'http://airdev.tistory.com/')"; //no는 자동으로 증가

    this.sendQuery(syntax);

    syntax = "INSERT INTO testTable (title, url) VALUES ('아폴로케이션[Apollocation]', 'http://cafe.naver.com/apollocation')"; //no는 자동으로 증가

    this.sendQuery(syntax);


  11. 데이터가 들어갔는지 확인도 해봐야겠죠?

    var syntax:String = "SELECT * FROM testTable";

    var responder:Responder = new Responder(

    function(e:SQLResult):void {

    var result:Array = e.data;

    var numRows:int = result.length;

    for(var i:int = 0; i < numRows; i++){

    trace("필드 번호 :", i);

    for(var columnName:String in result[i]){

    trace(columnName + " :", result[i][columnName]);

    }

    }

    }

    );

    this.sendQuery(syntax, -1, responder);


    /*

    필드 번호 : 0

    no : 1

    url : http://airdev.tistory.com/

    title : Adobe AIR Devpia.

    필드 번호 : 1

    no : 2

    url : http://cafe.naver.com/apollocation

    title : 아폴로케이션[Apollocation]

    */


  12. 테이블을 삭제할 수도 있어야죠?

    var syntax:String = "DROP TABLE testTable";

    this.sendQuery(syntax);


  13. 테이블이 삭제가 되었는지 확인해 봅니다..
  14. 3 참조


    Lite
    라서 그런지 아기자기한 느낌으로 즐겁게 작업할 있어서 좋네요^^

    플래시(Flash), 플렉스(Flex) 개발자 분들도 AIR 공부하셔서 재밌는거 많이 만들어 보세요~AS 3 안다면 AIR 어도비(Adobe) 그냥 주는 선물입니다 : )








신고
Posted by 원강민
Adobe AIR2007.12.21 11:20


어도비 AIR에는 SQLite라는 데이터베이스 라이브러리가 있습니다..사용도 아주 간편하고 하나의 파일로 생성되기 때문에 관리가 용이합니다..특히 기존의 SQL과 거의 동일한 구문으로 작성이 가능하므로 쉽고 빠르게 작업할 수 있습니다..

PHP 5에도 SQLite가 적용되었는데요..AIR의 한글 문서가 없으니 PHP 문서를 통해 SQLite에 대해 알아보죠..

SQLite는 SQL 92 표준에 맞춰 구현된 임베디드 데이터베이스 라이브러리이다. SQLite는 일반적인 데이터베이스처럼 데몬을 구동하는 방식이 아니라, 엔진이라 할 수 있는 하나의 라이브러리에 데이터베이스 인터페이스를 병합한 형태다. 게다가 데이터를 단지 파일 하나에만 저장하는 방식이다.
SQLite는 내부 구조가 최대로 튜닝 되어 있고 다른 데이터베이스에서 볼 수 있는 데몬을 사용한 클라이언트/서버 구조가 아니기 때문에, MySQL이나 PostgreSQL에 비해 많은 경우에 2~3배 정도 빠르다.

SQLite는 자체적으로 매우 적은 메모리를 사용한다. 다른 어떤 데이터베이스보다 적은 메모리를 사용하도록 최대한으로 최적화 되어 있기 때문에 간단하고 편리하게 데이터베이스를 사용하고자 하는 경우에 매우 적합하게 사용할 수 있다.

SQLite는 속도와 효율성 뿐만 아니라 다른 여러가지 장점을 가지고 있기 때문에 다양한 용도로 사용될 수 있다. SQLite의 데이터베이스는 단순한 파일들이다. 그리고 이 파일들은 권한이 자동으로 관리된다. 따라서 데이터베이스를 보호하기 위해 복잡하게 관리 기술을 습득할 필요가 없다. 또한 단순 파일이기 때문에 이기종 간의 데이터 이전도 손쉽게 할 수 있다.
SQLite는 일기장, 다이어리, MP3 플레이리스트 등 어플리케이션의 다양한 부분에서 아주 유용하게 쓸 수 있을 것입니다..






신고
Posted by 원강민

티스토리 툴바