카테고리 없음

bookboard.java

별초롱언니 2025. 6. 8. 14:31
package controller;

import java.io.IOException;
import java.time.LocalDate;

import dao.BoardRepository;
import dto.BoardDTO;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/create")
public class create_Controller extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("create get");
		
		RequestDispatcher ds = req.getRequestDispatcher("form.jsp");
		ds.forward(req, resp);	
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("create form");
		// id="admin" name="kim"
		String id = "admin";
		String name = req.getParameter("name");
		String subject = req.getParameter("subject");
		String content = req.getParameter("content");
		String regist_day = LocalDate.now().toString();
		int hit = 0;
		String ip = req.getRemoteAddr();
		
		BoardDTO dto = new BoardDTO();
		dto.setId(id);
		dto.setName(name);
		dto.setSubject(subject);
		dto.setContent(content);
		dto.setRegist_day(regist_day);
		dto.setHit(hit);
		dto.setIp(ip);
		
		BoardRepository repository = BoardRepository.getInstance();
        repository.create(dto);

        resp.sendRedirect("readall?pageNum=1");
		
	}

}

create_Controller.java

 

package controller;

import java.io.IOException;
import java.util.ArrayList;

import dao.BoardRepository;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/readall")
public class readall extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		int pageNum = Integer.parseInt(req.getParameter("pageNum"));
		
		BoardRepository repository = BoardRepository.getInstance();
        ArrayList arr = repository.readall(pageNum);
        int total_record = repository.getListCount();

        req.setAttribute("arr", arr);
        req.setAttribute("total_record", total_record);
        req.setAttribute("pageNum", pageNum);
        RequestDispatcher ds = req.getRequestDispatcher("boardview.jsp");
        ds.forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}

}

readall.java

 

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import dto.BoardDTO;

public class BoardRepository {
	//싱글턴
    private static BoardRepository repository = new BoardRepository();
    private BoardRepository() {}
    public static BoardRepository getInstance() {
        return repository;
    }
    
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs=null;
    int limit = 5;
    
    
    // create

    //글의 총갯수 알아오는 함수
    public int getListCount(){
        int result = 0;

        String sql = "select count(*) from board";

        try {
            conn = DBConnection.getConnection();
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();

            if (rs.next()) 
                result = rs.getInt(1);

        } catch (Exception ex) {
            System.out.println("getListCount() 에러: " + ex);
        }
        return result;
    }
    
    public void create(BoardDTO board) {
        try {
            conn = DBConnection.getConnection();

            String sql = "insert into board(id,name,subject,content,regist_day,hit,ip) values( ?, ?, ?, ?, ?, ?, ?)";

            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, board.getId());
            pstmt.setString(2, board.getName());
            pstmt.setString(3, board.getSubject());
            pstmt.setString(4, board.getContent());
            pstmt.setString(5, board.getRegist_day());
            pstmt.setInt(6, board.getHit());
            pstmt.setString(7, board.getIp());

            pstmt.executeUpdate();
        } catch (Exception ex) {
            System.out.println("insertBoard() 에러 : " + ex);
        }
    }
    // read
    public ArrayList readall(int pageNum) {

        int start = (pageNum - 1) * limit;
        int index = start + 1;
        int total_record = getListCount();

        ArrayList allboard = new ArrayList();
        String sql = "select * from board ORDER BY num DESC";

        try {
            conn = DBConnection.getConnection();


            pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            rs = pstmt.executeQuery();
            //
            while (rs.absolute(index)) {
                BoardDTO board = new BoardDTO();
                board.setNum(rs.getInt("num"));
                board.setId(rs.getString("id"));
                board.setName(rs.getString("name"));
                board.setSubject(rs.getString("subject"));
                board.setContent(rs.getString("content"));
                board.setRegist_day(rs.getString("regist_day"));
                board.setHit(rs.getInt("hit"));
                board.setIp(rs.getString("ip"));
                allboard.add(board);

                if (index < (start + limit) && index < total_record)
                    index++;
                else
                    break;
            }
        } catch (Exception ex) {
            System.out.println("getBoardList() 에러 : " + ex);
        }
        return allboard;
    }
    // update
    
    // delete
}

dao.BoardRepository.java

 

package dao;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;

public class DBConnection {
	
	public static Connection getConnection() throws SQLException, ClassNotFoundException  {		

		Connection conn = null;		
	
		String url = "jdbc:mysql://localhost:3306/BookMarketDB";
		String user = "root";
		String password = "1234";

		Class.forName("com.mysql.jdbc.Driver");
		conn = DriverManager.getConnection(url, user, password);		
		
		return conn;
	}
}

dao.DBConnection.java

 

package dto;

public class BoardDTO {
	private int num;
	private String id;
	private String name;
	private String subject;
	private String content;
	private String regist_day;
	private int hit;
	private String ip;

	public BoardDTO() {
		super();		
	}

	public int getNum() {
		return num;
	}

	public void setNum(int num) {
		this.num = num;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public String getRegist_day() {
		return regist_day;
	}

	public void setRegist_day(String regist_day) {
		this.regist_day = regist_day;
	}

	public int getHit() {
		return hit;
	}

	public void setHit(int hit) {
		this.hit = hit;
	}

	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}

}

dto.BoardDTO.java