'그 dao'에 해당되는 글 3건

  1. 2009.11.18 예제3 : 데이터의 조회
  2. 2009.11.18 예제2 : 테이블 생성 및 조회
  3. 2009.11.16 예제1 : Database Connection
Spac 매뉴얼/MySQL Dao2009. 11. 18. 22:35
먼저 데이터 조회 예제를 수행하기 위해 기본 데이터를 넣어 놓겠습니다.

Insert Into member ( user_id, user_name, reg_date) values ( 'dukman', '덕만', now() );
Insert Into member ( user_id, user_name, reg_date) values ( 'misil', '미실', now() );
Insert Into member ( user_id, user_name, reg_date) values ( 'bidam', '비담', now() );

위의 쿼리문을 실행하여 데이터를 3건 등록한 후 예제2의 회원수구하는 클래스인 "Member" 를 바로 호출해 보도록 하겠습니다.


브라우저에서 결과를 확인 합니다.

결과는 "회원수는 3 명 입니다." 라고 메세지가 출력될 것입니다.


그럼 이제 실제 3명의 상세 데이터값을 가져와 봅니다.
Member 클래스를 좀 더 보완하겠습니다.

* Spac/model/Member.Class.php
<?php
class Member extends Controller {

    var $data_list;
    
    function Member() { }

    function initMember() {               //맴버클래스 초기화메소드를 만들고 여기서 DB 연결을 합니다.
        $this->getControllerInstance("Dao");        // Dao 클래스를 로드합니다.
        $this->Dao->transaction = true;                    // 트랜젝션을 Start 합니다.
        $this->Dao->Connect();                            // DB를 연결합니다.
    }

    function getCount() {
        $query = " Select count(*) From member ";
        $this->Dao->
executeQuery($query);
        echo "<p>회원수는 " . $this->Dao->getResult() ." 명 입니다.</p>";
    }

    function getList() {
   
        $this->data_list = array();                         //결과를 담을 변수를 초기화 합니다.

        $query = " Select * From member ";          //전체 데이터 검색 쿼리문 작성
        $this->Dao->
executeQuery($query);                //쿼리문 실행

      $Result = $this->Dao->result;
        while( $Rows = $this->Dao->getFetchArray() ) { //결과값을 행을 돌며
             $this->data_list[] = $Rows;               //결과 변수에 배열로 담습니다.
        }

        echo "<pre>";                                      //배열로 담긴 결과값을 보기 쉽도록 출력합니다.
        print_r($this->data_list);
        echo "</pre>";

    }



    function execute() {                                     //Spac의 기본 액션메소드를 정의합니다.
        $this->initMember();                               
//기본메소드가 호출되면 DB연결을 수행합니다.
        echo "<p>데이터베이스 연결에 성공했습니다.</p>"; 


      $this->getCount();
       $this->getList();
  


    }

}
?>




브라우저에서 결과를 확인 합니다.

결과는 "회원수는 3 명 입니다." 와 회원 테이블의 정보들이 배열형태로 출력될 것입니다.





지금까지는 뷰를 거치지 않고 클래스에서 바로 출력하는 예제를 실행 해봤습니다.
다음 예제에서는 클래스에서 출력하지 않고 해당 클래스와 연결된 뷰에서 데이터를 출력하는 예제를 작성해 보겠습니다.

Posted by webdata
Spac 매뉴얼/MySQL Dao2009. 11. 18. 22:35

성공 메세지가 출력된다면 쿼리문의 실행 예제를 위한 테이블을 만들어보도록 하겠습니다.

회원정보를 저장할 테이블로 "member" 라는 이름의 테이블을 만듭니다. 간단한 필드만 넣어서 만들어보겠습니다.

Create Table `member` (
  `user_id` varchar(12) not null,
  `user_name` varchar(20) not null,
  `reg_date` datetime,
  primary key (`user_id`)
) engine=innodb;



위에서 만든 Member 클래스에  내용을 추가하여 위 테이블의 레코드 수를 화면에 출력 하도록 해봅시다.

* Spac/model/Member.Class.php
<?php
class Member extends Controller {
   
    function Member() {}                  //이번예제는 생성자에서 별도 할일이 없으므로 정의만 해 놓습니다.

    function initMember() {               //맴버클래스 초기화메소드를 만들고 여기서 DB 연결을 합니다.
        $this->getControllerInstance("Dao");        // Dao 클래스를 로드합니다.
        $this->Dao->transaction = true;                    // 트랜젝션을 Start 합니다.
        $this->Dao->Connect();                            // DB를 연결합니다.
    }

    function getCount() {
        $query = " Select count(*) From member ";
        $this->Dao->executeQuery($query);
        echo "<p>회원수는 " . $this->Dao->getResult() ." 명 입니다.</p>";
    }

    function execute() {                                     //Spac의 기본 액션메소드를 정의합니다.
        $this->initMember();                               
//기본메소드가 호출되면 DB연결을 수행합니다.
        echo "<p>데이터베이스 연결에 성공했습니다.</p>"; 


      $this->getCount();

    }

}
?>


getCount() 메소드를 추가 하여 "member"  테이블의 레코드 수가 출력되도록 작성합니다.




브라우저에 다시 한 번 실행결과를 확인합니다.


현재는 레코드가 없으므로 "회원수는 0 명 입니다." 라고 메세지가 출력될 것입니다.



Posted by webdata
Spac 매뉴얼/MySQL Dao2009. 11. 16. 23:38

이제 Dao 를 Spac 프레임웍 내부로 불러와 데이터베이스에 연결하는 예제를 작성해보겠습니다.

회원 테이블을 관리하는 모델클래스를 만듭니다.

회원관리 클래스는 "Member"라는 이름으로 만듭니다.

이번 예제부터는 Spac 컨트롤러의 외부클래스 로드기능을 사용해야 하므로 "Controller" 를 상속받아 작성합니다.

* Spac/model/Member.Class.php
<?php
class Member extends Controller {

    var $Dao;
   
    function Member() {}                

    function initMember() {                            //맴버클래스 초기화메소드를 만들고 여기서 DB 연결을 합니다.
        $this->getControllerInstance("Dao");      // Dao 클래스를 로드합니다.
        $this->Dao->transaction = true;              // 트랜젝션을 Start 합니다.
        $this->Dao->Connect();                        // DB를 연결합니다.
    }

    function execute() {                                 //Spac의 기본 액션메소드를 정의합니다.
        $this->initMember();                           //기본메소드가 호출되면 DB연결을 수행합니다.
        echo "<p>데이터베이스 연결에 성공했습니다.</p>"; 
    }

}
?>

위의 예제는 Spac 컨틀로러의 메소드인 getControllerInstance 를 사용해서 Dao 클래스를 가져왔습니다.
일반적으로 위처럼 사용하면 되지만, 이클립스를 사용하는 경우 코드 자동완성기능을 사용하시려면 직접 Dao 클래스 파일을 삽입하여 사용해야 합니다.


즉, 아래와 같이 사용합니다.
  ==> getControllerInstance 를 사용하지 않는 예제
* Spac/model/Member.Class.php
<?php
require_once("C:\AutoSet6\www\Spac\controller\Dao\Dao.Class.php");
class Member extends Controller {
   
    var $Dao;

    function Member() {}                  //이번예제는 생성자에서 별도 할일이 없으므로 정의만 해 놓습니다.

    function initMember() {               //맴버클래스 초기화메소드를 만들고 여기서 DB 연결을 합니다.

       $this->Dao = new Dao;

        $this->Dao->transaction = true;                    // 트랜젝션을 Start 합니다.
        $this->Dao->Connect();                            // DB를 연결합니다.
    }

    function execute() {                                     //Spac의 기본 액션메소드를 정의합니다.
        $this->initMember();                               //기본메소드가 호출되면 DB연결을 수행합니다.
        echo "<p>데이터베이스 연결에 성공했습니다.</p>"; 
    }

}
?>




위의  두가지 예제의 결과는 모두 같습니다만, 이클립스를 사용하여 개발할 경우 두번째 방법을 사용하면 자동완성기능이 활성화되어 더욱 편하게 개발하실 수 있습니다.





이로서 Database 연결을 구현하였습니다.

브라우저에 아래의 주소를 입력한 후 성공메세지가 출력되는지 확인합니다.


오류가 없었다면 "데이터베이스 연결에 성공했습니다." 라는 메세지가 화면에 출력될 것입니다.





Posted by webdata