티스토리 뷰
DAO
- Data Access Object : Database의 data에 접근을 위한 객체
- Database 접근 로직과 비즈니스 로직을 분리하기 위해 사용
- DB와 연결하기 위해 매번 커넥션 객체를 생성 >> 해결하기 위해 커넥션 풀 등장
- ConnectionPool : connection 객체를 미리 만들어 놓고 가져다 쓰고 반환
- 유저 한명이 접속 >> 한번에 하나의 커넥션? >> 게시판의 경우 목록, 글읽기, 글쓰기 등 각각 한번씩 커넥션
- ConnectionPool이 connection을 또 만드는 오버헤드를 효율적으로 관리
* DB에 접속하는 객체를 전용으로 하나만 만듬 >> 모든 페이지에서 그 객체를 호출해 사용 --> DAO 객체
사용자(호출) <--> Interface <--> DAO(DB 접근)
- 다수의 원결 호출 오버헤드를 VO나 DTO를 통해 줄임
- 다수의 DB 호출문제를 해결
- 트랜잭션 간 오버헤드 감소
VO(=DTO)
- Value Object(=Data Transfer Object) : 계층간 데이터 교환을 위한 JavaBeans
- 계층간 : Controller, View, Business Layer, Persistent Layer
- read only 속성
- 일반적으로 로직을 갖고 있지 않는 순수한 데이터 객체이며 속성과 그 속성에 접근하기 위한 getter, setter 메소드만 가진 클래스
DAO와 VO의 흐름
- 회원가입의 경우
입력 폼에서 ID, 비밀번호입력 >> Database에 저장
회원 테이블(=User 테이블) id, password 칼럼 >> UserVO 클래스는 id와 password라는 멤버 변수를 가짐
사용자의 입력 값 >> 각 변수에 할당 시키는 작업
--> 데이터들을 캡슐화 해서 객체로 만든 것 = VO
해당 값들을 데이터베이스에 INSERT하기 위한 쿼리를 작성 >> UserDAO 클래스에 메서드로 작성
DAO에서는 Database에 JDBC로 연결하여 Connection을 이루고 쿼리를 날리는 작업을 수행
--> UserDAO에서 insert(UserVO vo)라는 메서드 존재 >> VO 객체를 받아서 사용자가 할당된 데이터를 쿼리에 추가시키는 작업 = DAO
*참조
https://jungwoon.github.io/common%20sense/2017/11/16/DAO-VO-DTO/
https://victorydntmd.tistory.com/149
'ETC > Summary' 카테고리의 다른 글
HTTP 통신이란 ? (0) | 2023.06.21 |
---|---|
접근제어자(private/default/protected/public) (0) | 2019.03.06 |
객체지향의 개념(추상화, 캡슐화, 상속성, 다형성) (0) | 2019.03.06 |
추상화 / 추상 클래스 (0) | 2019.03.05 |
REST ful 이란? (0) | 2019.02.19 |
- Total
- Today
- Yesterday
- 아이폰앱개발
- 함수
- gem update
- Java
- Swift
- toml
- 격파르타 장점
- Android
- Xcode
- 격파르타 후기
- 음성재생
- sqld 자격증 합격
- Kotlin
- 코틀린
- 스위프트
- 자바
- rotate
- 연산자
- 아이폰
- NoAnimation
- 변수
- FLUTTER
- 안드로이드
- IOS
- .toml
- 격파르타 합격후기
- dart
- 버전카타로그
- ~=
- rotation
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |