2021.12.15 TIL

서승원·2021년 12월 15일
0

TIL

목록 보기
36/68

DAO Pattern
data를 읽고 쓰고 수정,삭제하는 역할을 하는 함수를 DAO 클래스에 모아 함수 형태로 만드는 것 DAO(Data Access Object) Pattern 이라고 한다.
DAO 패턴의 원칙
1. DAO CLASS에는 DB,데이터와 관련된 코드만 채운다.
2. O-R맵핑 개념을 철저히 적용한다.
3. 예외처리를 꼼꼼히 하고, 발생시 다시 던져주게 한다.(close()가 어느 경우건 동작하도록)
4. SELECT 문은 find,select,sel 등의 접두어, INSERT 문은 add,insert,ins 등,UPDATE는 mod,update,up 등의 접두어로 이름을 통해 함수를 식별할 수 있게 한다.

먼저 위와 같은 interface 를 선언해서 DB에 맞는 class를 생성할 수 있게 한다.
MariaDB에 맞도록 함수를 오버라이딩하여 class를 선언한다.
IA a = new A(); 의 개념을 적용해 인스턴스를 생성한다.해당 인스턴스를 통해서 함수를 사용할 수 있다.

Prepared Statement
Prepared Statement란 Statement가 java에서 SQL 문을 작성해 DB로 실어보내는 바구니라고 하면 Prepared는 바구니에 어떠한 SQL문을 미리 새기는 것이다. null에 대한 처리가 깔끔해지고 속도가 다소 빨라져 많이 사용된다.
stmt를 PreparedStatement로 선언하고, sql이라는 String 변수를 만들어 SQL 문을 작성한다. 이 때 VALUES에 ? 를 작성하는데, 이는 미리 새겨둔 SQL문에 입력할 공간을 만드는 것과 같다. set--을 통해 원하는 자료형을 입력할 수 있다.

Procedure
프로시져는 SQL문을 java에서의 함수와 같이 미리 만들어 두고 CALL을 통해 호출하고 동작할수 있게하는 기능이다. 그냥 함수를 호출하는 것에 비해 문법검사,컴파일,실행코드 생성의 과정을 미리 거친 후 CALL을 통해 실행만 하기 때문에 속도가 몹시 빠르다.
no와 data 두 필드를 갖는 테이블과proc_apple이라는 프로시져를 만든다. 해당 프로시져의 내용은 INSERT INTO temp11_T , temp11_T 테이블에 레코드를 추가하는 내용이다. 프로시져를 생성한 뒤에는 테이블에 아무 변화가 없고, CALL 을 통해 프로시져를 호출하면 레코드가 추가된다.

profile
2년차 백엔드 개발자, crimy

0개의 댓글