데이를 운반하는 역할을 하는 객체이다. 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;
}
}
데이터베이스 상호작용을 담당하는 객체이다 주로 데이터베이스 접근하여 데이터를 저장하거나 조회, 수정, 삭제하는 역할을 수행
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;
}
}