230531 쉰 여덟 번째 수업_Mybatis

mary·2023년 6월 5일
0

국비 수업

목록 보기
58/72

01.core.jsp 파일 수정 조건문 if부터

	 <h3>2. 조건문(c:if test="조건식")</h3>
   <pre>
   -java의 if문과 같은 역할
   -조건식은 test속성에 작성
   </pre>
   
   <%-- 
   <%
      if( num1 > num2 ) {
   %>
         <p>num1의 숫자가 크다</p>
   <%
      }
   %>   
    --%>
   <c:if test="${num1 gt num2}">
      <b>num1이 num2보다 크다</b>   
   </c:if>
   
   <c:if test="${num1 le num2}">
      <b>num1이 num2보다 작거나 같다</b>   
   </c:if>
   
   <p/>
   
   <c:set var="str" value="안녕하세요" />
   
   <c:if test="${str eq '안녕하세요'}">
      <h4>hello World</h4>
   </c:if>
   
   <c:if test='${str ne "안녕하세요"}'>
      <h4>Bye world</h4>
   </c:if>
   
   <p/>
   
   <h3>3. Choose(c:choose, c:when, c:otherwise)</h3>
   <pre>
   - java의 if-else, if-else... 태그 (swith-case문과 같은 역할)
   - 각 조건들은 c: choose의 하위요소로 c: when을 통해 작성(else문 역할 == c: otherwise)
   </pre>
   <%-- 
   <%if(조건) %>
   <% } else if(조건) { %>
   <% else { %>
   <% } %>
    --%>
      
   <c:choose> <!-- 반드시 choose를 써줘야함 -->
      <c:when test="${num1 gt 20}">
         <b>처음 뵙겠습니다</b>
      </c:when>
      <c:when test="${num1 ge 10}"> <!-- 10~20사이의 수가 됨 -->
         <b>다시 만나 반갑습니다</b>
      </c:when>
      <c:otherwise>
         <b>안녕하세요</b>
      </c:otherwise>
   </c:choose>
   
   <p>   
   점수를 넣는 변수 선언하고 값을 넣어주고
   when-otherwise로 80점 이상이면 '합격' 79~70 '예비합격' 나머지는 '불합격'
   </p>
   <c:set var="score" value="95" />
   <c:choose>
      <c:when test="${score ge 80}"> 100 ~ 80
      <p>합격</p>
      </c:when>   
      <c:when test="${score ge 70}"> 79 ~ 70
      <p>예비합격</p>
      </c:when>   
      <c:otherwise> 69 ~ 0
         <p>불합격</p>
      </c:otherwise>
   </c:choose>   
   
   <h3>4. 반목분 forEach</h3>
   <pre>
   for loop문 - (c:forEach var="변수명" begin="초기값" end="끝값" [step="반복 시 증가값"(기본값은 1씩 증가)])
   향상된 for- (c:forEach var="변수명" items="순차적으로 접근하고자 하는 객체(배열|컬렉션)" [varStatus="현재 접근한 요소의 위치값을 보관할 변수명"])   
   var 속성으로 선언된 변수에 접근하고자 할 떄는 반드시 EL구문으로 접근
   </pre>
   
   <%-- <% for(int i=1; i<=10; i+=2 ) { out.print("반복확인 : " + i + "<br>") } %> 를 밑에서 JSTL로--%>
   
   <c:forEach var="i" begin="1" end="10" step="2">
      반복확인 : ${i}<br> <!-- EL구문으로 접근하기 -->
   </c:forEach>
   
   <c:forEach var="i" begin="1" end="6">
      <h${i}>태그안에도 적용하여 h1,h2,h3,h4...가 되게하기</h${i}>
   </c:forEach>
   
   <c:set var="colors">
      red,yellow,green,pink
   </c:set><!-- 변수 여러개 -->
   
   colors변수값 : ${colors}<br>
   
   <ul>
      <c:forEach var="c" items="${colors}">
      <li style="color:${c}">${c}</li>
      </c:forEach>
   </ul>
   
   <%
      ArrayList<Person> list = new ArrayList<Person>();
      list.add(new Person("홍길동",20,"남자"));
      list.add(new Person("아무개",23,"여자"));
      list.add(new Person("홍말똥",19,"남자"));
   %>
   
   <c:set var="pList" value="<%=list %>" scope="request" />
   <!-- request.setAttribute("pList",list); 와 같음 -->
   
   <table border="1">
      <thead>
         <tr>
            <th>index</th>
            <th>이름</th>
            <th>나이</th>
            <th>성별</th>
         </tr>
      </thead>
      <tbody>
         <%-- 기존 출력방식 
         <% if(pList.isEmpty) { %>
         <% } else { %>
         <% for(Person p : pList) { %>
         <% } } %>
          기존 것을 밑에서 JSTL구문으로 --%> ------------------동영상 1:29:44초부터 다시 보기!!!!!!!!!!!!
      <!-- 1.컬랙션 for 출력 -->    
<%--        <c:choose>
          <c:when test="${empty pList}">
             <tr>
                <td solspan="3">조회된 사람이 없습니다.</td>
             </tr>
          </c:when>
         <c:otherwise>
            <c:forEach var="p" items="${pList}">
               <tr>
                  <td>${p.name}</td>
                  <td>${p.age}</td>
                  <td>${p.gender}</td>
               </tr>
            </c:forEach>    
          </c:otherwise>
       </c:choose> --%>
       
      <!-- 2. status속성 추가 출력 
      varStatus 속성은 다음과 같은 정보를 제공합니다:
      varStatus.index: 현재 반복 단계의 인덱스 값을 저장하는 변수입니다. 0부터 시작하여 반복이 진행될 때마다 1씩 증가합니다.
      varStatus.count: 현재까지의 반복 횟수를 저장하는 변수입니다. 1부터 시작하여 반복이 진행될 때마다 1씩 증가합니다.
      varStatus.first: 현재 반복 단계가 첫 번째인지 여부를 나타내는 논리값(참 또는 거짓)입니다.
      varStatus.last: 현재 반복 단계가 마지막인지 여부를 나타내는 논리값(참 또는 거짓)입니다.
      varStatus.begin: 반복문의 시작 값입니다. begin 속성이 지정되어야만 사용할 수 있으며, 시작 값으로 설정됩니다.
      varStatus.end: 반복문의 끝 값입니다. end 속성이 지정되어야만 사용할 수 있으며, 끝 값으로 설정됩니다.
      varStatus.step: 반복 시 증가값입니다. step 속성이 지정되어야만 사용할 수 있으며, 증가값으로 설정됩니다.
      -->
       <c:choose>
          <c:when test="${empty pList}">
             <tr>
                <td solspan="3">조회된 사람이 없습니다.</td>
             </tr>
          </c:when>
         <c:otherwise>
            <c:forEach var="p" items="${pList}" varStatus="s">
               <tr>
               <%--<td>${s.index}</td>  인덱스 값--%>
                  <td>${s.count}</td>   <!-- 반복횟수 -->               
                  <td>${p.name}</td>
                  <td>${p.age}</td>
                  <td>${p.gender}</td>
               </tr>
            </c:forEach>    
          </c:otherwise>
       </c:choose>
      </tbody>
   </table>
   
   <h3>5. 반복문 - forTokens</h3>
   <pre>
   (c:forTokens var="변수명" items="분리시키고자 하는 문자열" delims="구분자") 
   - 구분자로 분리된 각각의 문자열에 순차적으로 접근함녀서 반복수행
   - java split("구분자") 또는 StringTonkenizer와 비슷한 기능
   </pre>
   
<%--    <c:set var="device">
      "컴퓨터","핸드폰" 혹은 --%>
   <c:set var="device" value="컴퓨터,핸드폰,tv,에어컨/냉장고.세탁기" />
   
   <ol>
      <c:forTokens var="d" items="${device}" delims=",/.">
         <li>${d}</li>
      </c:forTokens>
   </ol>
   
   <hr>
   
   <h3>6 url, 쿼리 스트링관련 = url, param</h3>
   <pre>
   -url경로로 생성하고, 퀴리스트링을 정의해 둘 수 있는 태그
   
   c:url var="변수명" value="요청할 url"
      c:param name="키값" value="전달할 값" /
      c:param name="키값" value="전달할 값" /
   /c:url   
   </pre>
   
   <%-- 서블릿을 만들지 않았기 때문에 오류남 그냥 주소표시창에 잘 넘어가는지만 확인 --%>   
   <a href="list.jsp?cpage=1&num=10"> 기존방식</a>
   <%-- <a href="list.jsp?cpage=+<%=page %>+"&num=" +<%=num%>>기존방식</a> --%> 
   
   <c:url var="t" value="list.do">
      <c:param name="cpage" value="1" />
      <c:param name="num" value="10" />
   </c:url>
   <a href="${t}">c:url 이용한 방식</a>s

02.fmt 생성

jstl.jsp 3번 입력
03.fn.jsp 생성

프레임워크: 데이터베이스 처리를 용이하게 함(db검색을 xml에서 함)
스프링도 프레임워크
마이바티스도 프레임워크!
스프링 하기 전에 연습용으로다가 마이바티스 하도록 할 것임.


Framework

가이드대로 따라야함

유지/보수할 때 프레임워크를 사용하지 않고 사용자 마음대로 코드를 개발하여 납품했다면 추후에 다른 사람이 코드를 이해하고 사용하기 힘들어짐

기업에서는 마이바티스를 많이 쓰긴함

부트스트랩은 프레임워크라고 볼 수 없다는 의견이 있기도 함



MyBatis

흐름도 예시

Controller는 servlet 파일임(DB로 가거나 다시 JSP로 가거나 함)

db를 추가 삭제하는 클래스들을 Dao에
(수업시간에 Mgr했던 것들은 Dao폴더에 넣어지면 되는 것임)
Dao의 vo는 Bean파일을 의미함



Mybatis 설치과정

처음 work space 새로 시작하면 window - Preperence - enc 검색해서 나오는 메뉴들 모두 UTF-8로 설정해줌

Spelling도 확인

파일은 사용 안하고 폴더만 사용할 거라 폴더만 체크

저 네 개만 사용할 것이라 저것만 체크

사용할 것들만 체크

메뉴들 이름 선택 안 된 거 체크

마이바티스 설치

커서에 해당하는 파일 다운

복사하여 라이브러리 폴더에 넣어줄 것임

Tomcat9 폴더 선택

톰캣 서버는 finish하고 dinamic project설정 창에서 next하고

또 next 눌러 이 창에서 이름 바꾸고 박스 체크

복붙해주기(cos.jar파일은 게시판에 파일 올리는 거라 필요없어서 안 넣어도 됨)

실행구문 실행시키고 commit 완료 확인하고 데이터 만들어졌는지 확인

마지막엔 보통 프로젝트명이나 팀원명을 넣게 됨

profile
내 인생을 망치러 온 나의 구원, 개발

0개의 댓글