[JSP & Servlet] 게시판 만들기 (feat. MySQL) - Service 클래스

Service 클래스에서는 각 클라이언트의 요청을 처리하는 비즈니스 로직이 구현된다.

 

📌새로운 글 작성 처리하는 비즈니스 로직

BoardWriteProService 클래스

package service;

import java.sql.Connection;
import dao.BoardDAO;
import vo.BoardBean;
import static db.JdbcUtil.*;
public class BoardWriteProService {

	public boolean registBoard(BoardBean boardBean) throws Exception{
		// TODO Auto-generated method stub
		
		boolean isWriteSuccess = false;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		int insertCount = boardDAO.insertBoard(boardBean);
		
		if(insertCount > 0){
			commit(con);
			isWriteSuccess = true;
		}
		else{
			rollback(con);
		}
		
		close(con);
		return isWriteSuccess;
		
	}

}

 

 

 

📌게시판 목록 List 처리하는 비즈니스 로직

BoardListService 클래스

package service;

import static db.JdbcUtil.*;
import java.sql.Connection;
import java.util.ArrayList;
import dao.BoardDAO;
import vo.BoardBean;

public class BoardListService {

	public int getListCount() throws Exception{
		// TODO Auto-generated method stub
		
		int listCount = 0;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		listCount = boardDAO.selectListCount();  //DB에서 총 게시판 글의 개수를 반환받음
		close(con);
		return listCount;
		
	}

	public ArrayList<BoardBean> getBoardList(int page, int limit) throws Exception{
		
		ArrayList<BoardBean> boardList = null;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		boardList = boardDAO.selectBoardList(page,limit);
		close(con);
		return boardList;
		
	}

}

 

 

📌게시글 상세 보기

BoardDetailService 클래스

package service;

import java.sql.Connection;
import dao.BoardDAO;
import vo.BoardBean;
import static db.JdbcUtil.*;

public class BoardDetailService {

	public BoardBean getBoard(int board_num) throws Exception{
		// TODO Auto-generated method stub
		
		BoardBean board = null;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		
		//조회수 증가 update 작업의 트랜잭션 처리해주는 부분
		int updateCount = boardDAO.updateReadCount(board_num);
		
		if(updateCount > 0){
			commit(con);
		}
		else{
			rollback(con);
		}
		
		board = boardDAO.selectBoard(board_num);
		close(con);
		return board;
		
	}

}

 

 

📌글 수정 처리하는 비즈니스 로직

BoardModifyProService 클래스

package service;

import static db.JdbcUtil.*;
import java.sql.Connection;
import vo.BoardBean;
import dao.BoardDAO;

public class BoardModifyProService {

	public boolean isBoardWriter(int board_num, String pass) throws Exception {
		//사용자가 해당 글을 작성한 사용자인지를 판단
		
		boolean isBoardWriter = false;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		isBoardWriter = boardDAO.isBoardWriter(board_num, pass);
		close(con);
		return isBoardWriter;
		
	}

	public boolean modifyBoard(BoardBean board) throws Exception {
		//글 수정 작업을 처리하는 메소드
        
		boolean isModifySuccess = false;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		int updateCount = boardDAO.updateBoard(board);
		//트랜잭션 처리하는 부분
		if(updateCount > 0){
			commit(con);
			isModifySuccess=true;
		}
		else{
			rollback(con);
		}
		close(con);
		return isModifySuccess;
	}

}

 

 

📌글 삭제 처리하는 비즈니스 로직

BoardDeleteProService 클래스

package service;

import static db.JdbcUtil.close;
import static db.JdbcUtil.commit;
import static db.JdbcUtil.getConnection;
import static db.JdbcUtil.rollback;
import java.sql.Connection;
import dao.BoardDAO;

public class BoardDeleteProService {

	public boolean isBoardWriter(int board_num, String pass) throws Exception {
		// 사용자가 해당 글을 작성한 사용자인지를 판단
		
		boolean isBoardWriter = false;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		isBoardWriter = boardDAO.isBoardWriter(board_num, pass);
		close(con);
		return isBoardWriter;
		
	}

	public boolean removeBoard(int board_num) throws Exception{
		// 글 삭제 요청을 처리하는 메소드
		
		boolean isRemoveSuccess = false;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		int deleteCount = boardDAO.deleteBoard(board_num);
		//트랜잭션 처리하는 부분
		if(deleteCount > 0){
			commit(con);
			isRemoveSuccess=true;
		}
		else{
			rollback(con);
		}
		
		close(con);
		return isRemoveSuccess;
	}

}

 

 

📌게시글의 답글 처리하는 비즈니스 로직

BoardReplyProService 클래스

package service;

import static db.JdbcUtil.*;
import java.sql.Connection;
import dao.BoardDAO;
import vo.BoardBean;

public class BoardReplyProService {

	public boolean replyBoard(BoardBean board) throws Exception{
		
		boolean isReplySuccess = false;
		int insertCount = 0;
		Connection con = getConnection();
		BoardDAO boardDAO = BoardDAO.getInstance();
		boardDAO.setConnection(con);
		insertCount = boardDAO.insertReplyBoard(board);
		
		if(insertCount > 0){
			commit(con);
			isReplySuccess = true;
		}
		else{
			rollback(con);
		}
		
		close(con);
		return isReplySuccess;
		
	}

}