2019.06.05

 

 // DAO (Data Access Object)

 데이터베이스에 관련된 작업을 전문적으로 담당하는 클래스(객체)

 데이터베이스 한 테이블당 DAO 클래스 하나씩 구성하면 유지보수가 편함

 

 예) 단어 사전 CRUD의 DAO

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package service;
 
 
 
public class DicDAO {
    Connection conn = null;
    PreparedStatement pstmt = null;
    ArrayList<DicDTO> ald = null;
    ResultSet rs = null;
    
    // dic 단어 수정 메서드
    public void update(DicDTO dicDTO) throws ClassNotFoundException, SQLException {
        DriverDB db = new DriverDB();
        conn = db.driverDbcon();
        pstmt = conn.prepareStatement("UPDATE dic SET eng=?, kor=? WHERE idx = ?");
        pstmt.setString(1dicDTO.eng);
        pstmt.setString(2dicDTO.kor);
        pstmt.setInt(3dicDTO.idx);
        // System.out.println(pstmt + " <-- pstmt update DicDAO.java");
        int result = pstmt.executeUpdate();
        
        pstmt.close();
        conn.close();
    }
    
    // dic 단어 삭제 메서드
    public void delete(int idx) throws ClassNotFoundException, SQLException {
        DriverDB db = new DriverDB();
        conn = db.driverDbcon();
        pstmt = conn.prepareStatement("DELETE FROM dic WHERE idx=?");
        pstmt.setInt(1, idx);
        int result = pstmt.executeUpdate();
        
        pstmt.close();
        conn.close();
    }
    
    // dic 단어 추가 메서드
    public void insert(DicDTO dicDTO) throws ClassNotFoundException, SQLException {
        DriverDB db = new DriverDB();
        conn = db.driverDbcon();
        pstmt = conn.prepareStatement("INSERT INTO dic (eng, kor) VALUES (?, ?)");
        pstmt.setString(1dicDTO.eng);
        pstmt.setString(2dicDTO.kor);
        int result = pstmt.executeUpdate();
        
        pstmt.close();
        conn.close();
        
    }
    
    // dic 단어 한개 조회 메서드
    public DicDTO selectOne(int idx) throws ClassNotFoundException, SQLException {
        DicDTO dicDTO = new DicDTO();
        DriverDB db = new DriverDB();
        conn = db.driverDbcon();
        pstmt = conn.prepareStatement("SELECT * FROM dic WHERE idx = ?");
        pstmt.setInt(1, idx);
        rs = pstmt.executeQuery();
        if(rs.next()) {
            dicDTO.eng = rs.getString("eng");
            dicDTO.kor = rs.getString("kor");
            dicDTO.idx = rs.getInt("idx");
            // System.out.println(dicDTO.eng + " <-- dicDTO.eng DicDAO.java");
            // System.out.println(dicDTO.kor + " <-- dicDTO.kor DicDAO.java");
        }
        return dicDTO;
    }
    
    // dic 전체 리스트 조회 메서드
    public ArrayList<DicDTO> selectList() throws ClassNotFoundException, SQLException {
        ald = new ArrayList<DicDTO>();
        DriverDB db = new DriverDB();
        conn = db.driverDbcon();
        // System.out.println(conn + " <-- conn DicDAO.java");
        pstmt = conn.prepareStatement("SELECT * FROM dic");
        // System.out.println(pstmt + " <-- pstmt DicDAO.java");
        rs = pstmt.executeQuery();
        
        while(rs.next()) {
            DicDTO dicDTO = new DicDTO();
            dicDTO.idx = rs.getInt("idx");
            dicDTO.eng = rs.getString("eng");
            dicDTO.kor = rs.getString("kor");
            ald.add(dicDTO);
            // System.out.println(dicDTO.idx + " <-- dicDTO.idx DicDAO.java");
            // System.out.println(dicDTO.eng + " <-- dicDTO.eng DicDAO.java");
            // System.out.println(dicDTO.kor + " <-- dicDTO.kor DicDAO.java");
            // System.out.println(ald + " <-- ald DicDAO.java");
        }
        rs.close();
        pstmt.close();
        conn.close();
        return ald;
    }
    
}
 
 
 

 

 

 

'교육 > Java' 카테고리의 다른 글

#20 Java Layout 분리, Object Data Type, Session  (0) 2019.07.26
#17 Java String to int, int to String  (0) 2019.07.25
#13 Java 생성자(Constructor)  (0) 2019.07.23
#12 Java DTO와 VO  (0) 2019.07.23
#11 Java 전역변수와 지역변수  (0) 2019.07.23

+ Recent posts