전체 글
15. Oracle PL/SQL
PL/SQL(Procedural Language/SQL)이란? 오라클에서 제공하는 프로그래밍 언어 일반 프로그래밍 언어적 요소를 가지고 있고, 데이터베이스 업무를 처리하기 위한 최적화 언어 입니다. 기본구조 선언부(Declare) : 모든 변수나 상수를 선언하는 부분입니다. 실행부(Executable) : 제어문 반복문 함수정의 등을 작성합니다. (BEGIN ~ END) 사이에 담기게 됩니다. 예외처리부(Exception) : 실행 중 에러 발생 시 해결을 위한 명령을 작성합니다. PL/SQL 의 특성 PL은 블록 단위로 작업을 처리하며 익명 블록 (일회성) , 저장 블록(서버에 저장 후 주기적으로 호출이 있습니다. ) DECLARE , BEGIN , EXCEPTION 은 세미콜론을 붙이지 않습니다. P..
3. Spring 어노테이션 Autowired, Resource, Inject
어노테이션이란? 클래스나 메서드 , 속성 등에 @ 를 선언하여 사용하는 것입니다. 그 중 의존 객체 자동 주입(Automatic Dependency Injection) 에 속하는 Autowired, Resource, Inject 를 사용하려면 구문을 꼭 xml 설정파일에 추가해주어야 합니다. 스프링 설정파일에서 혹은 태그로 의존 객체 대상을 명시하지 않아도 스프링 컨테이너가 자동적으로 의존 대상 객체를 찾아 해당 객체에 필요한 의존성을 주입하는 것을 말한다. 만약에 생성자가 아닌 다른 곳에서 어노테이션을 사용할 경우 기본 생성자를 만들어야 합니다. @Autowired Autowired 는 속성, Setter, 생성자에 모두 사용 가능 하며 , 주입하려는 객체타입이 일치하는 객체를 자동으로 주입됩니다. 만..
2. Spring DI(Dependency Injection)
DI(Dependency Injection)란? 문자 그대로 의존성을 주입시킨다는 의미입니다. 객체를 직접 생성하는게 아니라 외부에서 생성한 후 주입을 시켜주는 방식입니다. 사실 Spring에서 나온 개념이 아닌 Java에서도 존재하였지만, Spring에서 좀 더 체계화 되었습니다. Java에서도 Battery 라는 객체를 새로운 객체인 Robot, Phone, Laptop 이라는 객체로 주입할 수 있습니다. package lesson02_DI_Basic; import lesson02_DI_Basic_Battery.Battery; import lesson02_DI_Basic_Battery.ChargedBattery; import lesson02_DI_Basic_Battery.UnChargedBattery..
14. Oracle 계층형쿼리
계층형 쿼리란? Oracle 8i버전부터 제공하였습니다 . 일반적인 DBMS에서 제공하지 않고 Oracle 만의 특별한 기능이며 평등한 관계가 아닌 수직적인 구조를 가집니다. 수직적 구조로 보았을때, 최상위(부모 노드) - 중위(자식 노드) - 하위(리프) 형태로 이뤄져있습니다 그렇다면 테이블에서는 아래와 같이 표현됩니다. Item-Id Parent-Id Child-Id Comment 100 null Phone 핸드폰의 최상위입니다. 최상위 노드는 부모 키를 가지지 않습니다. 101 100 Main Board 중위 노드에 속하며, 핸드폰의 구성요소 중 하나입니다. 102 100 Battery 중위 노드에 속하며, 핸드폰의 구성요소 중 하나입니다. 103 101 CPU 중위 노드에 속하며, 메인보드 구성요..
13. Oracle Sequence
시퀀스란 ? 연속적인 번호를 만들어주는 기능을 담당합니다. 시퀀스의 구문 형식 CREATE SEQUENCE 시퀀스 명 INCREMENT BY N -- N만큼 증가하게 됩니다. 기본값은 1로 설정되어있습니다. START WITH N -- N부터 시작하게 됩니다. 기본값은 1로 설정 되어있습ㄴ디ㅏ. MAXVALUE N | NONMAXVALUE -- 시퀀스의 최대값을 설정합니다. MINVALUE N | NOMINVALUE -- 시퀀스의 최소값을 설정합니다. CYCLE 옵션일 경우 시작값이 됩니다. CYCLE | NOCYCLE -- 시퀀스가 최대값에 도달했을때 순환해서 사용할지 설정 합니다. CACHE N | NOCHCHE -- 시퀀스의 속도를 개선하기 위해 캐시 여부를 선택합니다. 캐시는 즐겨찾기로 생각하면 ..
12. Oracle View
View의 정의 테이블과 유사하지만 저장하기 위한 물리적인 공간이 필요없는 가상의 테이블입니다. 데이터가 물리적인 공간을 차지않고 논리적 집합을 가집니다. View의 사용은 는 크게 두가지 측면으로 나뉩니다. 보안 관리를 위하여 민감한 데이터를 보안등급에 맞춰 조회 할 수 있게 합니다. 테이블 명 , 혹은 컬럼 명을 숨김으로 결과만 제공하여 어떤 방식으로 출력되었는지 숨길 수 있습니다. 사용 편의성을 위하여 검색 조건을 단순화 하여 사용할 수 있습니다. VIEW 의 기본 예제 VIEW 테이블 생성 CREATE VIEW V_EMP(EMP_ID,FIRST_NAME,JOB_ID,HIRE_dATE,DEPT_ID) AS SELECT EMPLOYEE_ID, FIRST_NAME, JOB_ID, HIRE_DATE, D..
1. Maven 의 개요 및 스프링의 이해
Maven 이란? 메이븐은 Apache Project 중 프로젝트의 라이브러리를 관리하는 기능을 합니다. 기존에는 라이브러리를 다운받아서 이클립스에서 WEB-INF/lib 안에 라이브러리를 추가해서 사용하였으나, 관리에 어려움이 있었습니다.메이븐을 사용할 경우, Pom.xml 파일에 라이브러리 명칭을 선언해주면 자동으로 찾아서 추가해줍니다. pom.xml 파일에 선언을 하면 아래 경로로 외부 라이브러리가 다운로드 됩니다. {C:\Users\사용자}\.m2\repository 우클릭 > New > Other > Maven 검색 후 Maven Project를 선택합니다. Create a simple project를 선택 후 Next 를 클릭합니다. Group Id와 Artifact Id는 필수로 입력해주어야..
11. Oracle 무결성 제약조건
NOT NULL : NULL 값이 입력되지 못하게 하는 조건 CREATE TABLE NULL_TABLE( FIELD1 VARCHAR2(20) NOT NULL, FIELD2 VARCHAR2(20) NULL, FIELD3 VARCHAR2(20) ); INSERT INTO NULL_TABLE (FIELD1,FIELD2) VALUES ('AA','BB'); -- 정상적으로 삽입됩니다. INSERT INTO NULL_TABLE (FIELD2,FIELD3) VALUES ('CC','DD'); -- 에러가 발생합니다.(FIELD1은 값이 반드시 들어가야합니다.) UNIQUE : 중복된 값이 입력되지 못하게 하는 조건 ( NULL 값을 허용합니다. ) CREATE TABLE UNIQUE_TABLE( FIELD1 VAR..
[게시판 만들기] 2-4. JSP - Oracle 을 이용한 Model2 입니다.
데이터의 흐름 View(list.jsp) -> Controller(contentController) -> Model(Board_DAO.selectByIdx) -> Controller(contentController) -> View(content.jsp) 1. 목록 중 제목을 클릭하면 상세 페이지로 이동할 예정입니다. 제목 명 을 클릭하면 contentController 로 이동합니다. 2. Controller 이동 시, Primary Key 인 Idx를 함께 가져와서 해당 데이터만 content Page로 데이터를 전달합니다. 3. DAO에 있는 selectByIdx를 호출합니다. ? 안에는 View(list.jsp)에서 전달받은 BOARD_IDX 를 넣습니다. 4. View(content.jsp) 안에..
[게시판 만들기] 2-3. JSP - Oracle 을 이용한 Model2 입니다.
데이터의 흐름 View(index.jsp) -> Controller(listController) -> Model(Board_DAO.select) -> Controller(listController) -> View(list.jsp) 1. DTO(Data Transfer Object) 는 계층간 데이터 교환을 위한 자바빈즈를 의미 데이터 객체이며, 비즈니스 로직을 가지지 않고 Getter & Setter를 표현하고 있습니다. 일반적으로 Database 의 속성을 멤버변수로 가집니다. Getter & Setter 생성방법 Source(Alt+Shift+S) 창에서 Getter and Setters 를 선택하면 자동으로 생성됩니다. 2. DTO 의 생성 3. list.jsp 에 표현된 자바코드를 Board_DA..