티스토리 뷰

학습정리-12-08.txt
0.00MB

 

1. Foreign key에 대하여 설명하시오.

부모(deptno)에 있는 deptno를 자식(emp)가 가져다 쓰는 것을 말한다.
자식쪽는 부모쪽에 들어 있는 값(deptno)만 올 수 있도록 하기 위해 사용.

 

 


2.아래의 SQL 문을 실행 하시오.
--18> 모든 사원의 이름(첫 글자는 대문자로, 나머지 글자는 소문자로 표시) 및 이름 길이를
--표시하는 쿼리를 작성하고 컬럼 별칭은 적당히 넣어서 출력하라.
--19> 사원의 이름과 커미션을 출력하되, 커미션이 책정되지 않은
--사원의 커미션은 'no commission'으로 출력하라.

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
31
32
33
34
35
36
37
-- PRIMARY KEY
-- 실무에서는 직접 지정해주는 경우보다 툴을 이용해 설정해주는 경우가 많다.
-- 마우스 오른쪽 버튼 > 테이블 편집 들어가서 보면 열쇠모양 아이콘이
-- 있는 것이 프라이머리 키가 설정된 것이다.
-- UNIQUE + NOT NULL
 CREATE TABLE EMP05(
     EMPNO NUMBER(4
     CONSTRAINT EMP05_EMPNO_PK PRIMARY KEY
     ENAMR VARCHAR2(10CONSTRAINT EMP05_ENAME_NN NOT NULL
     JOB VARCHAR(9), 
     DEPTNO NUMBER(2)
 );
COMMIT;
 
INSERT INTO emp05 VALUES(7499'ALLEN''SALESMAN''20');
 
-- FORFIGN KEY
-- 부모(deptno)에 있는 deptno를 자식(emp)가 가져다 쓰는 것을 말한다.
-- 자식쪽에서도 부모쪽에 들어갈 수 있는(들어 있는)값만 올수 있도록 하기 위해 사용.
 
 
-- 연습문제
-- 직업이 Clerk 또는 Analyst 이면서 급여가 1000,3000,5000 이 아닌
-- 모든 사원의 이름, 직업 및 급여를 출력하라.
SELECT ename, job, sal FROM emp WHERE job in('CLERK''ANALYST') and sal not in(100030005000);
 
-- 사원번호, 이름, 급여 그리고 15%인상된 급여를 정수로 표시하되 컬럼명을
-- New Salary로 지정하여 출력하라.
SELECT empno, ename, sal, ROUND(sal + sal*0.15AS "New Salary" FROM emp;
 
-- 모든 사원의 이름(첫 글자는 대문자로, 나머지 글자는 소문자로 표시) 및 이름 길이를
-- 표시하는 쿼리를 작성하고 컬럼 별칭은 적당히 넣어서 출력하라.
SELECT INITCAP (ename), LENGTH (ename) FROM emp; 
 
-- 사원의 이름과 커미션을 출력하되, 커미션이 책정되지 않은
-- 사원의 커미션은 'no commission'으로 출력하라.
SELECT ename,NVL(To_char(comm),'no  commisiion'FROM emp;
cs

 

 

3. 게시판에서 아래의 쿼리(SQL 문)를 정리 하시오.
- list 쿼리

String query = "SELECT * FROM mvc_board ORDER BY bgroup DESC, bstep ASC";


- 답글 insert를 위한 쿼리

reply

String query = "insert into mvc_board (bid, bname, btitle, bcontent, bgroup, bstep, bindent) "
               + "values (mvc_board_seq.nextval, ?, ?, ?, ?, ?, ?)";

 

replyShape

String query = "update mvc_board set bstep = bstep + 1 where bgroup = ? and bstep > ?";


- 업데이트 쿼리

upHit

String query = "update mvc_board set bhit = bhit + 1 where bid = ?";

 

modify

String query = "UPDATE mvc_board SET bname = ?, btitle = ?, bcontent = ? WHERE bid = ?";


- 삭제 쿼리 (delete)

String query = "DELETE FROM mvc_board Where bid = ?";


- insert 쿼리 (write)

String query = "insert into mvc_board (bid, bname, btitle, bcontent, bhit, bgroup, bstep, bindent) values (mvc_board_seq.nextval, ?, ?, ?, 0, mvc_board_seq.currval, 0, 0 )";

 


개별 진척도 70번

 

to do list 기법

1. 설계도 외우기

2. 프로젝트 생성

3. 라이브러리 3개 집어넣기 lib파일안에

4. dto만들기 - edu.kosmo.ex.dto

DESC mvc_board;  컬럼명 BDto 클래스 안에 주석으로 붙여 넣고 보면서 만들기

 

5. dao 만들기 - edu.kosmo.ex.dao

- 멤버 변수로 DataSource 주기.

- 생성자...(Context 객체 생성, dataSource에 context.lookup 값 넣어주고 형변환 꼭 해주기)

- arraylist<BDto> list()

- String query = "SELECT * FROM mvc_board ORDER BY bgroup DESC, bstep ASC";

- 커넥션 풀

-  쿼리를 실행해 mvc_board에 있는 내용을 가져올 while 문....(rs.next())

-  while문으로 불러온 내용을 dto 객체에 넣어주고 arrylist 객체(dtos)에 dto를 넣어준다...add

- 마지막에 finally로 ResultSet, preparedStatement, connection 순서로 꼭 close해주기!

 

6. BCommand 인터페이스 만들기! - edu.kosmo.ex.command

- void execute(HttpServletRequest request, HttpServletResponse response)  추상 함수 넣어주기!

 

7. BListCommand 만들기 (BCommand  상속) - edu.kosmo.ex.command

- Dao 객체 생성

- list 함수 호출

- request 객체 안에 게시판 넣기 (key - "list", value - dtos)

 

8. Servlet 객체 만들기 (BController)

- *.do 설정

- actionDo 함수 만들기

-  명령어 해석

String uri = request.getRequestURI();
String conPath = request.getContextPath();
String com = uri.substring(conPath.length());

- 명령어 해석후 BListCommand 객체 생성

if(com.equals("/list.do")) {
command = new BListCommand();
command.execute(request, response);
viewPage = "list.jsp";
}

- 파파라치 객체 설정 ★ - 자주 까먹고 안넣어주니까 주의!!

RequestDispatcher dispatcher = request.getRequestDispatcher(viewPage);
dispatcher.forward(request, response); - 페이지 포워딩!! 이것 때문에 다른 페이에서 request 객체를 공유해서 사용 가능

 

9. list.jsp 만들기

- UTF-8 세팅

- JSTL 지시자 넣기    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

- 댓글 RE 다는 부분 주의 할것.
<table width="500" border="1">
<tr>
<td>번호</td>
<td>이름</td>
<td>제목</td>
<td>날짜</td>
<td>히트</td>
</tr>
<c:forEach var="dto" items="${list}">
<tr>
<td>${dto.bid}</td>
<td>${dto.bname}</td>
<td>
<c:forEach begin="1" end="${dto.bindent}">[Re]</c:forEach>
<a href="content_view.do?bid=${dto.bid}">${dto.btitle}</a> 
</td>
<td>${dto.bdate}</td>
<td>${dto.bhit}</td>
</tr>
</c:forEach>
<tr>
<td colspan="5"><a href="write_view.do">글작성</a></td>
</tr>
</table>

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함