[10-D3][notice] DB, ActionScript Class, getter, setter function

[01] Flex Data Service HttpService의 사용
     - mx:Application 태그
       . layout="absolute": 콘트롤 배치 모드
       . creationComplete="init()": mxml이 실행시 자동으로 호출되는 함수
       . initialize="System.useCodePage=true": "euc-kr" 사용 가능 정의
       . jsp 페이지에서의 출력은 <%@ page contentType="text/xml; charset=euc-kr" %>에서
         "euc-kr"로 지정합니다.
     - Flex Builder setting
       Project Type: Flex Project
       Project Name: noticeFx


1.Database 테이블 구조

DROP TABLE noticeFx PURGE;

CREATE TABLE noticeFx(
    idx     NUMBER(5)     NOT NULL, -- 일련 번호
    regdate VARCHAR(20)   NOT NULL, -- 등록일
    subject VARCHAR(100)  NOT NULL, -- 제목
    content VARCHAR(1000) NOT NULL, -- 내용
    passwd  VARCHAR(10)   NOT NULL, -- 패스워드 
    PRIMARY KEY(idx)
);



-- 추가
INSERT INTO noticeFx(idx, regdate, subject, content, passwd)
VALUES((SELECT NVL(MAX(idx), 0)+1 AS cnt FROM noticeFx),
       sysdate, '내일은 즐거운 종강입니다.', '앞으로의 수업은 12강의장에서 프로젝트 진행입니다.', '1');
INSERT INTO noticeFx(idx, regdate, subject, content, passwd)
VALUES((SELECT NVL(MAX(idx), 0)+1 AS cnt FROM noticeFx),
       sysdate, '내일은 금요일입니다.', '학원에 11시까지 오세요.', '1');
INSERT INTO noticeFx(idx, regdate, subject, content, passwd)
VALUES((SELECT NVL(MAX(idx), 0)+1 AS cnt FROM noticeFx),
       sysdate, '수업 시간표', '11:13:00, 14:00~19:00', '1');


-- 목록
SELECT idx, regdate, subject, content, passwd 
FROM noticeFx
ORDER BY idx DESC;


-- 읽기
SELECT idx, regdate, subject, content, passwd
FROM noticeFx
WHERE idx=1;


-- 수정
UPDATE noticeFx
SET subject='12월 4일 12시', content='병아리반 개강'
WHERE idx=1;


-- 삭제
DELETE FROM noticeFx
WHERE idx=1; 

    
COMMIT;

    



2. getter, setter의 제작 및 사용
   - 함수명과 변수명은 일치하면 안됨으로 private변수에 '_'등을 추가합니다. 
     
        private var _id:String;

        /*
        // getter, setter의 선언 및 사용
        
        public function set id(id:String):void{
            this._id = id;
        }

        public function get id():String{
            return this._id;
        }
        */


>>>>> TestDTO.as
package flex.notice{
    public class TestDTO{
        // AS는 변수명과 함수명이 같으면 구분이 안됨으로 에러 발생
        // 변수명이 함수명과 같음으로 변수명앞에 '_'를 붙입니다.(권장)
        private var _name:String = "";
        private var _kuk:int = 0;
        private var _eng:int = 0;
        private var _mat:int = 0;
        
        // setter, 형식: set 변수명(변수)
        // JAVA: setName(String name) 
        public function set name(name:String):void{
            this._name = name;
        }
        
        // getter, 형식: get 변수명()
        // JAVA: getName()
        public function get name():String{
            return this._name;
        }
                
        
        public function set kuk(kuk:int):void{
            this._kuk = kuk;
        }
        
        public function set eng(eng:int):void{
            this._eng = eng;       
        }
        
        public function set mat(mat:int):void{
            this._mat = mat;
        }
        
        public function get kuk():int{
            return this._kuk;
        }
        
        public function get eng():int{
            return this._eng;
        }
        
        public function get mat():int{
            return this._mat;
        }
        
    }
}




>>>>> TestDTOTest.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="init()">
<mx:Style> <!-- CSS 적용 -->
.alertTitle {
fontSize: 18;
}
.alertMessage {
fontSize: 18;
}
Alert {
title-style-name: "alertTitle";
message-style-name: "alertMessage";
}
</mx:Style>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import flex.notice.TestDTO; 
public function init():void{
var dto:TestDTO = new TestDTO();
// JAVA에서는 에러 발생, private직접 접근 불 가능
dto.name = '브래드피트'; // set name(name:String):void
dto.kuk = 60;
dto.eng = 100;
dto.mat = 85;
var str:String = '';
str = '이름: ' + dto.name; // get name():String
str = str + ', 국어: ' + dto.kuk;
str = str + ', 영어: ' + dto.eng;
str = str + ', 수학: ' + dto.mat;
Alert.show(str);     
}
]]>
</mx:Script>
</mx:Application>





[실습] 가상의 테이블을 대상으로 5개의 변수를 만들어 값을 입력받아 
       출력하는 프로그램을 작성하세요.
  
  
>>>>> src/.../...VO.as




>>>>> src/PropertyTest.mxml
- 콘트롤은 Form Layout에 들어가고,  Form Layout은 Panel에 들어가도록 합니다.
  콘트롤 --> Form --> Panel
- ControlBar를 이용하여 버튼등을 등록합니다.
- 입력은 TextInput으로 진행합니다.
- Alert.show()를 이용하여 출력하지 말고 'TextArea'를 이용하여 출력하세요.






Posted by ▶파이팅◀

블로그 이미지
Let's start carefully from the beginning
▶파이팅◀

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

글 보관함