728x90
[ Sprint JDBC ]
01 - Entity, DTO , DAO,Repository
- Entity:
- Entity는 데이터베이스의 테이블에 매핑되는 객체입니다. 보통 데이터베이스의 각 열(column)이 객체의 속성(property)에 매핑되고, 각 행(row)은 해당 객체의 인스턴스가 됩니다. 예를 들어, 데이터베이스의 '사용자' 테이블이 있다면, 사용자 정보를 담는 User 클래스가 Entity가 될 수 있습니다.
- Entity는 보통 데이터베이스와 직접적으로 연관되어 있고, 비즈니스 로직을 포함하지 않습니다.
- DTO (Data Transfer Object):
- DTO는 계층간 데이터 교환을 위한 객체로, 서로 다른 계층(controller, service, repository 등) 간에 데이터 전달을 위해 사용됩니다. 일반적으로 데이터 전송을 위한 객체로, 여러 필드를 가지고 있으며 데이터의 송수신을 위해 사용됩니다. 주로 데이터 전송의 목적으로 사용되며, 특정 비즈니스 로직을 포함하지 않습니다.
- DTO는 주로 데이터 전달의 목적으로 사용되며, Entity와 다른 데이터 표현 방식을 가지고 있을 수 있습니다.
- DAO (Data Access Object):
- DAO는 데이터베이스나 외부 저장소와의 CRUD(Create, Read, Update, Delete) 작업을 수행하는 객체입니다. 주로 데이터 액세스 코드를 캡슐화하여 비즈니스 로직에서 데이터 액세스를 분리하는 역할을 합니다.
- DAO는 데이터베이스나 외부 저장소에 대한 접근을 추상화하고, 실제 데이터 액세스 작업을 수행합니다.
- Repository:
- Repository는 데이터의 저장소에 대한 추상화 계층을 제공하는 객체입니다. 일반적으로 데이터베이스에 대한 접근을 추상화하여 개발자가 데이터에 접근할 수 있는 메서드를 제공합니다.
- Spring Data JPA와 같은 프레임워크에서 Repository는 JPA Entity를 관리하고, 데이터베이스와의 상호작용을 수행합니다.
용어설명
Entity | 데이터베이스의 테이블에 매핑되는 객체. 데이터베이스와 연관되며 주로 데이터를 표현하는데 사용됨. 비즈니스 로직을 포함하지 않음. |
DTO | 계층간 데이터 전송을 위한 객체. 주로 데이터의 전송을 위한 목적으로 사용되며, Entity와 다른 데이터 표현 방식을 가질 수 있음. 비즈니스 로직을 포함하지 않음. |
DAO | 데이터 액세스 코드를 캡슐화하여 데이터베이스나 외부 저장소와의 CRUD 작업을 수행하는 객체. 데이터 액세스 작업에 중점을 둠. |
Repository | 데이터 저장소에 대한 추상화 계층을 제공하는 객체. 주로 데이터베이스에 대한 접근을 추상화하고 데이터 액세스를 위한 메서드를 제공함. |
[ JDBC란 ]
Java에서 Spring Framework를 사용할 때 JDBC(Java Database Connectivity)는 자바 언어를 이용하여 데이터베이스에 접근하고 쿼리를 실행하기 위한 API입니다. JDBC는 데이터베이스와의 연결을 수립하고 SQL 쿼리를 실행하여 데이터를 조작하고 조회하는 데 사용됩니다.
JDBC의 주요 개념:
- 드라이버 (Driver):
- JDBC 드라이버는 특정 데이터베이스와 통신하기 위한 라이브러리입니다. 각 데이터베이스 벤더(Oracle, MySQL, PostgreSQL 등)는 자체 JDBC 드라이버를 제공합니다. 이 드라이버는 데이터베이스에 연결하고 SQL 쿼리를 실행하는 데 필요한 기능을 제공합니다.
- 커넥션 (Connection):
- JDBC를 통해 데이터베이스에 연결하기 위한 객체입니다. Connection 객체를 사용하여 데이터베이스와의 세션을 만들고 SQL 쿼리를 실행할 수 있습니다.
- Statement 및 PreparedStatement:
- Statement는 정적인 SQL 문을 실행하는 데 사용됩니다. PreparedStatement는 미리 컴파일된 SQL 문을 실행하는 데 사용되며, 보안과 성능 면에서 유리합니다.
- ResultSet:
- SQL 쿼리를 실행한 결과를 담는 객체입니다. 데이터베이스로부터 검색한 데이터를 받아올 때 ResultSet 객체를 통해 데이터를 조작하고 처리합니다.
JDBC 코드 예시:
아래는 Java에서 JDBC를 사용하여 데이터베이스에 연결하고 쿼리를 실행하는 간단한 코드 예시입니다.
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
|
import java.sql.*;
public class JDBCTutorial {
public static void main(String[] args) {
// JDBC 연결 정보
String url = "jdbc:mysql://localhost:3306/database_name";
String username = "your_username";
String password = "your_password";
// JDBC 연결
try (Connection connection = DriverManager.getConnection(url, username, password)) {
// SQL 쿼리 실행
String query = "SELECT * FROM users";
try (Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query)) {
// 결과 처리
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
// 결과 처리하는 로직 작성
System.out.println("ID: " + id + ", Name: " + name);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
|
cs |
위 코드에서는 DriverManager.getConnection()을 통해 데이터베이스에 연결하고, Connection 객체를 통해 SQL 쿼리를 실행하고 결과를 받아옵니다. 이후 Statement를 통해 쿼리를 실행하고, ResultSet을 이용하여 쿼리 결과를 순회하며 데이터를 처리합니다.
추천인 코드 : o6i4B3y95 : 앨리스트랙 참여 링크
#엘리스트랙 #엘리스트랙후기 #온라인코딩부트캠프 #온라인코딩학원 #백엔드학원 #개발자국비지원 #개발자부트캠프 #국비지원부트캠프 #DOCKER #백엔드 #자바스프링 #스프링강의 #백엔드인강 #RESTAPI #스프링개발자
728x90
'Elice --Cloud--Track > 4~7 주차' 카테고리의 다른 글
7주차 블로그 챌린지 - Spring Framework(4) (0) | 2024.01.07 |
---|---|
7주차 블로그 챌린지 - 1차 스터디 팀 발표 (1) | 2024.01.07 |
5주차 블로그 챌린지 - Spring FrameWork (2) (0) | 2023.12.24 |
5주차 블로그 챌린지 -Spring Framework (0) | 2023.12.24 |
5주차 블로그 챌린지 -js (0) | 2023.12.24 |