DAO (Data Access Object)
- DB์ ๊ฐ์ ์ ์ฅ์์ ์ํธ์์ฉ์ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด
- DB์ ์ง์ ํต์ ํ๊ณ SQL ์ฟผ๋ฆฌ๋ฅผ ์ํํ๊ฑฐ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ ๋ฌ
- DAO๋ฅผ ์ฌ์ฉํ๋ฉด DB ๊ด๋ จ ๋ก์ง์ ๋ถ๋ฆฌํ ์ ์์ด ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๊ณ ํ
์คํธ๊ฐ ์ฌ์์ง
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ์บก์ํ : DAO๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๋ ์ฝ๋๋ฅผ ์บก์ํ
- CRUD ์์
: DAO๋ Create, Read, Update, Delete์ ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ์์
์ํ
- ์ ์ง๋ณด์์ฑ ํฅ์ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ๋ก์ง์ด ์ค์ ์ง์คํ๋์ด ์์ด ์์ ์ด ์ฉ์ด
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// DTO ํด๋์ค
class User {
private int id;
private String name;
private String email;
// Getters and Setters
}
// DAO ํด๋์ค
public class UserDAO {
private Connection getConnection() throws SQLException {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
return DriverManager.getConnection(url, username, password);
}
public User getUserById(int id) {
User user = null;
String query = "SELECT * FROM users WHERE id = ?";
try (Connection conn = getConnection();
PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setInt(1, id);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
// ๊ธฐํ CRUD ๋ฉ์๋ (์: addUser, updateUser, deleteUser)
}
DTO (Data Transfer Object)
- ๋ฐ์ดํฐ ์ ์ก์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฐ์ฒด
- ๊ณ์ธต ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์
- ์ ํ๋ฆฌ์ผ์ด์
์ ๋ค์ํ ๊ณ์ธต ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ด๋์ํค๋ ์ญํ
- ๋ก์ง์ด ์์, ์์ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ์ญํ
- ๋ฐ์ดํฐ ์ ์ก : ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์กฐํํ ๋ฐ์ดํฐ๋ฅผ ์๋น์ค ๊ณ์ธต์ผ๋ก ์ ๋ฌํ๋ ๋ฑ ๊ณ์ธต ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก์ ์ํด ์ฌ์ฉ
- ๋น์ฆ๋์ค ๋ก์ง ์์ : ๋ก์ง์ด ์๋ ์์ํ ๋ฐ์ดํฐ ๊ฐ์ฒด
- ์ผ๊ด๋ ์ธํฐํ์ด์ค : ๋ณต์กํ ์ํฐํฐ๋ ๋๋ฉ์ธ ๊ฐ์ฒด๋ฅผ ๋จ์ํํ์ฌ ๋ค๋ฅธ ๊ณ์ธต์ ์ ๊ณต
public class UserDTO {
private int id;
private String name;
private String email;
// ๊ธฐ๋ณธ ์์ฑ์, Getters, Setters, toString() ๋ฉ์๋ ๋ฑ
}
DAO์ DTO์ ๊ด๊ณ
- DAO์ DTO๋ ๋ณดํต ํจ๊ป ์ฌ์ฉ๋จ. DAO๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ๊ณ , DTO๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ค๋ฅธ ๊ณ์ธต์ผ๋ก ์ ๋ฌ
- DAO์ DTO๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ, ์ ์ง๋ณด์์ฑ, ํ
์คํธ ์ฉ์ด์ฑ์ด ํฌ๊ฒ ํฅ์๋จ