ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (국비교육) 40 - project1 이어하기8 + 6회차 시험
    개발/국비교육 2023. 7. 26. 14:49

    ■ SQL IF() 함수

     

     

    참이기 때문에 '1은 1입니다.' 가 출력된다. 

     

     

    현재 시간을 알 수 있다. 

     

     

    현재 시간을 뒤에 형식처럼 찍을 것이다. 

     

     

    시간도 다음과 같이 표현 가능하다. 

    우리는 이제 오늘 쓴 글은 시간이 뜨고, 오늘 쓰지 않은 게시글은 날짜가 나오도록 표시할 것이다. 

     

     

    다음과 같이 나온다. 

     

     

    이제 다음과 같이 오늘 작성한 글은 시간,

    이전에 작성 글은 날짜가 나오게 설정해준다. 

     

     

    초도 삭제할 수 있다. 

     

     

    이제 boardview 에 해당 if 구문을 넣어서 설정해주면 오늘글은 시간,

    이전글은 날짜로 표신된다. 

     

    ■ 전자정부 페이징

     

     

    pageSize 는 다음 사진과 같이 하단의 페이지 건수 몇 개 담을 것인

    전체 게시물 건 수 : 해당 페이지에 몇 개의 글이 있어요

     

    https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:ptl:view:paginationtag 

     

    egovframework:rte:ptl:view:paginationtag [eGovFrame]

    전자정부프레임워크에서는 페이징 처리의 편의를 위해 <ui:pagination/> 태그를 제공한다. 페이징 기능을 사용할때 기능은 유사하지만 이미지나 라벨등의 포맷만 다양하게 사용하게 되는 경우가 있

    www.egovframe.go.kr

     

     

    총 162 개의 글이 있다. 

     

     

    168개가 있다면 10개씩 올림처리해서 총 17개 페이지가 나와야 한다. 

    10개씩 보여주는 것 총 2페이지가 나와야 한다. 

     

    ■ 세팅하기

     

     

    pom.xml 에서 저장소 저장해주고 전자정부 페이징 jar 넣어준다. 

     

     

    그러면 다음과 같이 3개 생성된 것을 확인 가능하다. 

     

     

    이제 해당 코드를 복사하고 root 에 복사해준다. 

     

     

    붙여넣어준다. 그러나 오류 뜬다. 

    왜냐면 해당 이름의 class 가 없기 때문이다. 

     

     

    class 로 써져있는 위치에 가서 해당하는거 만들어주고,

    이름은 id 에 적힌 것으로 한다. 

     

    객체 세 개 만들어진다.

    그런데 매니저 안에 이미지와 text 가 포함되어 있기 때문에 

    그래서 우리는 paginationManager 를 가져와 사용할 것이다. 

     

    클래스를 생성하고 다음과 같이 복붙해준다. 

     

     

    PaginationInfo 객체 생성해준다. 

    model 에 정보 담아준다. 

     

    ※ 하단 오류 addALL이 아니라 추후 addAttribute 로 변경함 

     

     

     

     

     

    전체 게시글 가져오는 sql 문 작성한다. 

     

     

     

    160부터 10개 

     

     

    pageNo 라는 값 오면 int 타입으로 저장할게요.

     

     

    따라서 해당 페이지 번호를 pageNo 값으로 넣어주면 된다.

     넣으면 다음과 같이 나온다.

     

     

    PageDTO 도 만들어준다. 

    롬복(lombok)은 알아서 getter setter 만들어준다.

     

     

    page

     

     

     

     

    별칭 등록해준다. 

     

     

    보드뷰에서 limit 10 삭제해준다. 

     

     

    해당 pageNo=번호 넣으면 해당하는 페이지가 동적으로 나온다. 

     

     

    객체 제대로 연결되었는지 확인 가능하다. 

     

     

    복사해준다. 

    그러나 오류 뜨는 것은 taglib 가 없기 떄문이다. 

     

     

    위에 붙여넣어준다. 

     

     

    해당 부분 /board 로 변경해주고 복붙한다. 

     

     

    이제 클릭하면 페이지가 이동이 된다. 

     

    * 에러해결

    : 나의 경우 이동 경로를 ./board 로 설정해야 하는데 . 을 누락했다. 

     

     

     

     

     

     

     

     

     

    * 시험문제 

    [문항1]  다음은 RDBMS 기본 자료형에 대한 설명이다. 틀린 것은? 4번 

    1) int는 표준 정수값이다.
     2) VARCHAR 타입은 최대 255문자를 저장한다.
     3) 날짜 형식은 DATE 타입으로 지정한다.
     4) 정수는 DOUBLE 타입으로 지정한다.

     

    [문항2]  다음은 주요 제약조건에 대한 설명이다. 이 중 옳은 것을 선택하시오. 2번

     1) UNIQUE : 테이블에 저장된 데이터(행)는 중복을 허용한다.
     2) PRIMARY KEY : UNIQUE 제약조건에 NOT NULL 제약조건이 합쳐진 것과 동일하다.
     3) FOREIGN KEY : 입력 가능한 값의 범위 등을 제한한다.
     4) CHECK: NULL 허용여부를 제한한다.

     

    [문항3]  다음은 테이블 생성 시 주의사항에 대한 설명이다. 이 중 틀린 것은? 2번

     1) PRIMARY KEY는 데이터를 조회하거나 수정, 삭제하기 위한 조합으로 설정한다.
     2) 테이블 및 필드명은 중복이 가능하다.
     3) 제약 조건은 CONSTRAINT를 이용하여 추가한다.
     4) 테이블 및 필드명은 숫자로 시작해서는 안된다.

     

    [문항4]  게시판 글 번호를 만들 때 주로 사용하는 것으로 중복되지 않은 유일한 숫자를 자동으로 생성하며 한번 삭제된 번호는 다시 저장되지 않는 기능을 가진 것을 무엇이라 하는가? 2번

     

     1) 테이블
     2) 기본키
     3) 저장 프로시저
     4) 데이터 타입

     

    [문항5]  다음 조건에 맞는 View를 생성하시오.

     

    EMP 테이블에서 사원 번호(empno), 이름(ename), 업무(job), 부서코드(deptno)를 포함하는 emp_view라는 VIEW를 생성하시오.

     

    -> CREATE VIEW emp_view AS SELECT empno, ename, job, deptno FROM EMP;

     

    [문항6]  auto increment 에 대해 서술해주세요.

    auto increment 는 데이터베이스에서 기본키를 생성하기 위해 사용되는 기능이다. 게시판 글 번호와 같이 중복 없이 유일한 값이 필요한 경우에 자동 증가 기능을 활용하여 번호를 자동 생성 가능하다 이를 통해 데이터 무결성과 데이터베이스 효율성을 향상시킬 수 있다. 
    한 번 삭제된 글번호는 복구할 수 없다. 

     

    [문항7]  if() 함수 사용법에 대해 서술해주세요.

    : IF() 함수는 조건에 따라 값을 반환하는 함수로 
    IF(expr, true_value, false value) 로 쓴다.
    expr 는 평가할 조건식 또는 값
    true_value 는 조건식이 참일 경우 반환값
    false_value 는 조건식이 거짓일 경우 반환값이다. 

    따라서 IF( 3 > 2 , 'T' , 'F' ) 라는 IF() 함수가 있다면 T 를 반환한다. 

     

    [문항8]  SQL문의 실행 순서를 바르게 나열해 주세요.

     

    SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY

     

    -> FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

     

    [문항9]  RDBMS에서 두 테이블을 연결할때 사용하는 기법은? 3

     1) UNION
     2) WHERE
     3) JOIN
     4) EXCEPT

     

    [문항10]  쿼리문 속에 쿼리문을 삽입하는 것을 무엇이라고 하는가?

    -> 쿼리문 속에 쿼리문을 삽입하는 것은 서브쿼리라고 한다. 

Designed by Tistory.