티스토리 뷰

JSP와 Servlet만 이용해서 만드는 게시판

1. 스크립트 파일도 나눈다.
2. 페이징 한다.
3. 다중 첨부파일 가능 → 첨부파일의 개수가 리스트에 나와야 한다.
4. 검색기능 → 제목/작성자/내용/첨부파일 이름
5. 조회수 list에 추가 

# 모델 2로 구현하는 자바 웹 프로그래밍 JSP2.2&Servlet3.0 책 참고 


DAO(Data Access Object) 클래스 작성 2 

DAO 클래스는 실제로 데이터베이스와 연동하여 레코드의 추가, 수정, 삭제 작업이 이루어지는 클래스이다.
Action 클래스가 호출되어도 그에 해당하는 데이터베이스 연동 처리는 DAO 클래스에서 이루어지게 된다.
그러니까, 실제 쿼리문이 존재하게 되는 곳이라고 생각하면 되겠다.

작성해야 하는 메소드를 생각해보자. (클래스 안에 메소드 들이 있음)
- 글의 개수 구하기 
- 글 목록 보기
- 글 내용 보기
- 글 등록
- 글 수정
- 글 삭제
- 조회수 업데이트


글의 개수를 구해보자.
tb_board 테이블 안에 저장되어 있는 데이터의 개수를 가져오는것이다.

검색기능은 나중으로 두고, 우선 기본적인 글의 개수를 가져오는 DAO 클래스를 작성하자

  • pstmt , con, rs 모두 저번 포스팅의 생성자 선언 윗부분에서 선언하였다.
  • executeQuery(String sql) : SELECT 문을 실행할때 사용한다. -> ResultSet 객체를 반환한다. 
  • next() : 커서를 다음행으로 이동시키는 메소드이다. (다음 행이 없으면 false / 있으면 true 반환)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    /**
     * 글의 개수 구하기
     */
    public int getListCount(){
        int count =0;
        
        try{
            pstmt = con.prepareStatement("select count(*) from tb_board");
        
            rs = pstmt.executeQuery();
            
            if(rs.next()){
                count = rs.getInt(1);
            }
        }catch(Exception ex){
            System.out.println("getListCount 에러 : " + ex);
        }finally{
            if(rs!=null)try{rs.close();}catch(SQLException ex){}
            if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
        }
        
        return count;
    }
cs




저번 포스팅의 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
package net.board.db;
 
import java.sql.Array;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
 
 
/**
 * 
 * @author HAEUN
 * DAO클래스 
 * 실제로 데이터 베이스와 연동하는 부분
 * 
 */
 
public class BoardDAO {
    
    Connection con;
    PreparedStatement pstmt;
    ResultSet rs;
    
    public BoardDAO(){
        try{
            Context init= new InitialContext();
            DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/MariaDB");
            con = ds.getConnection();    
        }catch(Exception ex){
            System.out.println("DB연결 실패:" + ex);
            return;
        }
    }
    
    
    /**
     * 글의 개수 구하기
     */
    public int getListCount(){
        int count =0;
        
        try{
            pstmt = con.prepareStatement("select count(*) from tb_board");
        
            rs = pstmt.executeQuery();
            
            if(rs.next()){
                count = rs.getInt(1);
            }
        }catch(Exception ex){
            System.out.println("getListCount 에러 : " + ex);
        }finally{
            if(rs!=null)try{rs.close();}catch(SQLException ex){}
            if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
        }
        
        return count;
    }
}
cs







댓글