분류 전체보기

    [게시판 만들기] 2-2. JSP - Oracle 을 이용한 Model2 입니다.

    데이터의 흐름 View(index.jsp) -> View(list.jsp) -> View(write.jsp) -> Controller(writeController) -> Model(Board_DAO.insert) -> View(list.jsp) 1. 화면을 담당하는 View(write.jsp) 에서 프로그램의 흐름을 처리하는 Controller 로 이동합니다. 방식은 GET , POST 방식이 있습니다. 2. Form에서 action을 통해 어노테이션을 호출하고, @webServlet("/writeController") method에 따라 doGet, doPost 를 호출합니다. 3. ConnectionPool 생성 Servers > Tomcat 8.5 Server-config > context.xml ..

    [게시판 만들기] 2-1. JSP - Oracle 을 이용한 Model2 입니다.

    Model1 모델은 JSP 페이지 안에 자바 소스와 HTML 소스가 혼재되어 있어, 유지보수와 가독성이 떨어지므로 Model2 방식이 도입되었습니다. 사실 Model1 방식이 더 빠른 개발속도를 가지게 된다고하지만, 개발자에 따라 다를 수 있습니다. Model2 의 기능 Model : 데이터베이스와 접속을 관리하고 SQL제어하는 데이터베이스 관련 담당 View: Model의 데이터를 화면에 보여주는 역활 Controller : URL 처리 및 파라미터, 기능 제어 MVC(Model1) JSP , Service & DAO 가 혼재되어 있어 모듈화가 되어있지 않습니다. 개발 속도가 빠르지만, 코드가 혼재되어 있어 유지보수 측면에 어려운 점이 있습니다. MVC(Model2) 서비스를 제어하는 Controlle..

    10. Oracle DML(Insert, Update, Delete)

    DML(Data Manipulation Language) 데이터 조작어 데이터를 조회하거나 변형을 하는 명령어를 의미 합니다. 대표적으로 SELECT,INSERT,UPDATE,DELETE 구문이 있습니다. SELECT 컬럼1,컬럼2 FROM 테이블1,테이블2 WHERE 조건 ; INSERT INTO 테이블명 (컬럼1,컬럼2,컬럼3.. ) VALUES(값1, 값2, 값3 ... ); INSERT INTO MEMBER_EX(MEMBER_ID,MEMBER_NAME,MEMBER_SALARY,MEMBER_LOC,MEMBER_MANAGER) VALUES(10,'홍길동',1000,'서울','관리자'); INSERT INTO MEMBER_EX VALUES(20,'고길동',2000,'부산','관리자'); INSERT I..

    9. Oracle DDL(Table 정의)

    DDL(Data Definition Language : Create, Drop, Alter, Truncate 구문이 있습니다. 테이블과 같은 데이터 구조를 정의하는데 사용하는 명령어 입니다. 문자형 데이터 타입( 참고 ) CHAR 고정 길이형입니다. VARCHAR 가변 길이형입니다. NCHAR 고정 길이형입니다. ( UNICODE 를 받을 수 있습니다.) NVARCHAR 가변 길이형입니다. ( UNICODE 를 받을 수 있습니다.) LONG(2GB) 가변 길이형입니다. ( 큰 데이터를 받을 수 있습니다.) CREATE TABLE 테이블명 테이블을 생성 할 수 있습니다. CREATE TABLE MEMBER( MEMBER_ID NUMBER(10), MEMBER_NAME VARCHAR2(20), MEMBER_..

    8. Oracle 서브쿼리

    서브쿼리(SubQuery) 일반적인 쿼리문 안에 또 다른 쿼리문이 삽입되는 형태입니다. 모든 데이터 조작어 (SELECT,INSERT,DELETE,UPDATE)안에서 모두 사용 가능합니다. 서브쿼리의 기본형 평균 급여보다 적게 받는 사람의 EMPLOYEE_ID,FIRST_NAME,LAST_NAME를 출력하려고 합니다. 이를 위해서는 2개의 SELECT 구문이 필요합니다. SELECT ROUND(AVG(SALARY)) FROM EMPLOYEES; SELECT EMPLOYEE_ID,FIRST_NAME,LAST_NAME FROM EMPLOYEES WHERE SALARY < 6462; 서브쿼리를 이용하면 하나의 SELECT 구문을 생성할 수 있습니다. SELECT EMPLOYEE_ID,FIRST_NAME,LAS..

    7. Oracle 조인

    JOIN이란? 두개 이상의 테이블의 공통된 속성을 묶어 원하는 결과값을 표현하는 방식입니다. 예시 - HR 스키마 DEPARTMENTS , EMPLOYEES 테이블을 분리해 놓은 이유는 데이터를 별도로 관리하기 위함입니다. 만약 EMPLOYEES 의 DEPARTMENT_ID 로는 부서명을 정확히 알 수 없으며, DEPARTMENTS 테이블의 DEPARTMENT_NAME에 표현되어있습니다. INNER JOIN - 일반적인 JOIN을 의미합니다. SELECT EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME, EMPLOYEES.EMAIL, DEPARTMENTS.DEPARTMENT_NAME FROM EMPLOYEES, DEPARTMENTS WHERE EMPLOYEES.DEPARTMEN..

    [게시판 만들기] 1-5. JSP - Oracle 을 이용한 Model1 입니다.

    상세 페이지를 만들기 위해서 content.jsp를 생성합니다. list.jsp에서 content.jsp 로 이동하기 위한

    [게시판 만들기] 1-4. JSP - Oracle 을 이용한 Model1 입니다.

    데이터베이스의 테이블 생성당시 BOARD_IDX 는 Primary Key ( 중복 허용 안함 ) 은 고유한 값을 가지므로, 하나씩 넣어주는 것은 매우 비 효율적인 작업입니다. 이를 위해 오라클에서는 시퀀스를 제공합니다. ( 생성 시 옵션은 생략하였습니다. ) 생성된 시퀀스는 아래와 같은 방법으로 사용할 수 있습니다. insert.jsp 에서 수기로 기재 하였던 BOARD_IDX 에 시퀀스를 적용합니다. 또한 finally 구문에 성공 실패 여부와 상관없이 index.jsp로 이동하는 구문을 작성해주면 insert에 관련된 작업은 모두 끝났습니다. Select 진행 순서 index.jsp -> list.jsp (페이지의 시작은 index에서 시작하며 redirect를 통해 list로 이동합니다.) 다음으로..

    [게시판 만들기] 1-3. JSP - Oracle 을 이용한 Model1 입니다.

    Database(Oracle)을 정상적으로 설치하였다면, 실행창(Window Key + R) 을 연 후, 서비스(Services.msc)를 입력합니다. 이후 OracleService와 Oracle_Listener 가 정상적으로 실행되어 있는지 확인합니다. 실행창 > cmd(명령 프롬프트 창) 에서 sqlplus / as sysdba 로 접속을 진행합니다. 계정 생성 : CREATE USER 아이디 IDENTIFIED BY 비밀번호; 권한 부여 : GRANT CONNECT, RESOURCE, DBA TO 아이디; 설치된 SQLDeveloper 로 접속하면 왼쪽 상단 녹색 플러스 버튼에 생성한 계정으로 접속합니다. 워크 시트에서 테스트를 진행할 테이블을 생성 후 데이터를 삽입합니다. Board 테이블 안에 ..

    [게시판 만들기] 1-2. JSP - Oracle 을 이용한 Model1 입니다.

    index.jsp 에서 글을 작성할 수 있는 페이지로 이동하도록 태그를 추가합니다. 글을 작성할 수 있도록 write.jsp를 생성하여 form을 생성합니다. form action은 제출버튼을 누르게 되면 해당 경로로 데이터가 전송되며, method="post" 방식은 데이터가 URL에 남지 않고 HttpServletRequest 안에 데이터가 담기게 됩니다. JSP 페이지에서는 변수 선언 , 자바코드입력, 값 출력을 할 수 있습니다. write.jsp 에서 index.jsp 로 데이터를 전달할 예정이므로, HttpServletRequest 의 request.getParameter("form_name"); 으로 값을 받습니다. 한글 깨짐 현상을 방지하기 위해 최 상단에 아래와 같이 선언해주어야합니다.