DTO는 Data Transfer Object의 약자로, 데이터를 운반하는 역할을 하는 객체입니다. DTO는 주로 여러 계층(예: 데이터베이스, 서비스, 웹 등) 간에 데이터를 전달할 때 사용됩니다.
public class UserDTO {
private int userId;
private String username;
private String email;
// 기본 생성자
public UserDTO() {}
// getter와 setter
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
DAO는 Data Access Object의 약자로, 데이터베이스와의 상호작용을 담당하는 객체입니다. 주로 데이터베이스에 접근하여 데이터를 저장하거나 조회, 수정, 삭제하는 역할을 수행합니다.
Create(생성)
, Read(조회)
, Update(수정)
, Delete(삭제)
작업을 수행하는 메서드를 포함합니다.import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class UserDAO {
private Connection conn;
// 데이터베이스 연결 메서드
private Connection getConnection() throws Exception {
String url = "jdbc:mariadb://localhost:3306/mydatabase";
String username = "root";
String password = "password";
conn = DriverManager.getConnection(url, username, password);
return conn;
}
// 사용자 추가
public void addUser(UserDTO user) throws Exception {
try {
conn = getConnection();
String sql = "INSERT INTO users (user_id, username, email) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, user.getUserId());
pstmt.setString(2, user.getUsername());
pstmt.setString(3, user.getEmail());
pstmt.executeUpdate();
} finally {
if (conn != null) conn.close();
}
}
// 모든 사용자 조회
public List<UserDTO> getAllUsers() throws Exception {
List<UserDTO> userList = new ArrayList<>();
try {
conn = getConnection();
String sql = "SELECT * FROM users";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
UserDTO user = new UserDTO();
user.setUserId(rs.getInt("user_id"));
user.setUsername(rs.getString("username"));
user.setEmail(rs.getString("email"));
userList.add(user);
}
} finally {
if (conn != null) conn.close();
}
return userList;
}
}
개념 | 역할 | 포함 내용 |
---|---|---|
DTO | 데이터 전송을 위한 객체 | 순수 데이터, getter/setter, 비즈니스 로직 없음 |
DAO | 데이터베이스 접근과 CRUD 작업 담당 | 데이터베이스 연결, SQL 실행, DTO와 함께 사용 |
UserDAO
의 메서드를 호출합니다.UserDAO
는 데이터베이스에 연결하고, 데이터 조회나 삽입 작업을 수행합니다.UserDTO
객체를 통해 데이터를 DAO와 서비스, JSP 페이지 간에 주고받습니다.