JSP 8일 (23.04.03)

Jane·2023년 4월 3일
0

IT 수업 정리

목록 보기
97/124

1. MVC Board 큰 틀 잡기

  • BoardController.java (커맨드 관리 서블릿)
  • BCommand.java (인터페이스)
  • BListCommand.java (인터페이스를 상속받은 파일)
  • BDao.java
  • 게시판 프로젝트 안에 lib 3개 넣는다. (JDBC 관련 1개, JSTL 관련 2개)

BoardVO.java (Getters and Setters, 생성자 함수)

package edu.global.board.vo;

import java.sql.Timestamp;

/*이름       널?       유형             
-------- -------- -------------- 
BID      NOT NULL NUMBER(4)      
BNAME             VARCHAR2(50)   
BTITLE            VARCHAR2(100)  
BCONTENT          VARCHAR2(1000) 
BDATE             DATE           
BHIT              NUMBER(4)      
BGROUP            NUMBER(4)      
BSTEP             NUMBER(4)      
BINDENT           NUMBER(4)      
*/

public class BoardVO {

	private int bid;
	private String bname;
	private String btitle;
	private String bcontent;
	private Timestamp bdate; // java.sql.Timestamp import하기
	private int bhit;
	private int bgroup;
	private int bstep;
	private int bindent;

	/* default constructor */
	public BoardVO() {

	}

	/* constructor using fields */
	public BoardVO(int bid, String bname, String btitle, String bcontent, Timestamp bdate, int bhit, int bgroup,
			int bstep, int bindent) {
		super();
		this.bid = bid;
		this.bname = bname;
		this.btitle = btitle;
		this.bcontent = bcontent;
		this.bdate = bdate;
		this.bhit = bhit;
		this.bgroup = bgroup;
		this.bstep = bstep;
		this.bindent = bindent;
	}

	/* getters and setters */
	public int getBid() {
		return bid;
	}

	public void setBid(int bid) {
		this.bid = bid;
	}

	public String getBname() {
		return bname;
	}

	public void setBname(String bname) {
		this.bname = bname;
	}

	public String getBtitle() {
		return btitle;
	}

	public void setBtitle(String btitle) {
		this.btitle = btitle;
	}

	public String getBcontent() {
		return bcontent;
	}

	public void setBcontent(String bcontent) {
		this.bcontent = bcontent;
	}

	public Timestamp getBdate() {
		return bdate;
	}

	public void setBdate(Timestamp bdate) {
		this.bdate = bdate;
	}

	public int getBhit() {
		return bhit;
	}

	public void setBhit(int bhit) {
		this.bhit = bhit;
	}

	public int getBgroup() {
		return bgroup;
	}

	public void setBgroup(int bgroup) {
		this.bgroup = bgroup;
	}

	public int getBstep() {
		return bstep;
	}

	public void setBstep(int bstep) {
		this.bstep = bstep;
	}

	public int getBindent() {
		return bindent;
	}

	public void setBindent(int bindent) {
		this.bindent = bindent;
	}

}

BDao.java (이어서 작성하기)

package edu.global.board.dao;

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

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

import edu.global.board.vo.BoardVO;

public class BDao {

	private DataSource dataSource;

	public BDao() {
		try {
			Context context = new InitialContext();
			dataSource = (DataSource) context.lookup("java:comp/env/jdbc/oracle");

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public List<BoardVO> list() {
		List<BoardVO> boards = new ArrayList<BoardVO>();

		Connection connection = null;
		PreparedStatement preparedStatement = null; // 기존 Statement를 보완한 버전
		ResultSet resultSet = null;

		try {

			String query = "select * from mvc_board order by bgroup desc, bstep asc";

			connection = dataSource.getConnection();
			preparedStatement = connection.prepareStatement(query);
			resultSet = preparedStatement.executeQuery();

			while (resultSet.next()) {
				int bid = resultSet.getInt("bid");
				String bname = resultSet.getString("bname");
				String btitle = resultSet.getString("btitle");
				String bcontent = resultSet.getString("bcontent");
				Timestamp bdate = resultSet.getTimestamp("bdate");
				int bhit = resultSet.getInt("bhit");
				int bgroup = resultSet.getInt("bgroup");
				int bstep = resultSet.getInt("bstep");
				int bindent = resultSet.getInt("bindent");

				BoardVO vo = new BoardVO(bid, bname, btitle, bcontent, bdate, bhit, bgroup, bstep, bindent);
				boards.add(vo);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (resultSet != null)
					resultSet.close();
				if (preparedStatement != null)
					preparedStatement.close();
				if (connection != null)
					connection.close();

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

		return boards;
	}

}

BListCommand.java (이어서 작성)

package edu.global.board.command;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import edu.global.board.dao.BDao;
import edu.global.board.vo.BoardVO;

public class BListCommand implements BCommand{

	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) {

		BDao dao = new BDao(); // Board DAO 호출
		
		List<BoardVO> vos = dao.list(); // DAO 안의 list()를 호출하여 BoardVO의 List 객체 생성
		
		request.setAttribute("boards", vos); // 요청하여 갖고 오기
	}
	
}

BoardController.java (이어서 작성하기)

package edu.global.board.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import edu.global.board.command.BCommand;
import edu.global.board.command.BListCommand;

/**
 * Servlet implementation class BoardController
 */
@WebServlet("*.do")
public class BoardController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public BoardController() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		actionDo(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		actionDo(request, response);
	}

	private void actionDo(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("actionDo() ... ");

		request.setCharacterEncoding("UTF-8");

		String viewPage = null;
		BCommand command = null; // Board의 커맨드

		String uri = request.getRequestURI();
		String contextPath = request.getContextPath();
		String com = uri.substring(contextPath.length());

		System.out.println("uri : " + uri);
		System.out.println("contextPath : " + contextPath);
		System.out.println("com : " + com);

		if (com.equals("/list.do")) {
			command = new BListCommand(); // 다형성 적용하여 BListCommand 생성
			command.execute(request, response); // 객체 전달하여 게시판 글 가져오기
			viewPage = "list.jsp";
		}

		RequestDispatcher dispatcher = request.getRequestDispatcher(viewPage);
		dispatcher.forward(request, response);

	}

}

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시판 리스트</title>
</head>
<body>
	<table width="500" cellpadding="0" cellspacing="0" border="1">
		<tr>
			<td>번호</td>
			<td>이름</td>
			<td>제목</td>
			<td>날짜</td>
			<td>히트</td>
		</tr>
		<c:forEach var="board" items="${boards}">
			<!-- request.setAttribute에 맞춰서 쓴다 -->
			<tr>
				<td>${board.bid}</td>
				<td>${board.bname}</td>
				<td><c:forEach begin="1" end="${board.bindent}">-</c:forEach> <a
					href="content_view.do?bid=${board.bid}">${board.btitle}</a></td>
				<td>${board.bdate}</td>
				<td>${board.bhit}</td>
			</tr>
		</c:forEach>
		<tr>
			<td colspan="5"><a href="write_view.do">글작성</a></td>
		</tr>
	</table>
</body>
</html>

[Console]
actionDo() ...
uri : /servlet_yjy_board/list.do
contextPath : /servlet_yjy_board
com : /list.do

2. MVC Board 글 보기

BContentCommand.java

package edu.global.board.command;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import edu.global.board.dao.BDao;
import edu.global.board.vo.BoardVO;

public class BContentCommand implements BCommand {

	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) {
		String bid = request.getParameter("bid");
		BDao dao = new BDao();
		BoardVO vo = dao.contentView(bid); // bid번째 글 보기
		
		request.setAttribute("content_view", vo);
	}

}

BDao.java (contentView 함수 추가)

	public BoardVO contentView(String strId) {
		BoardVO board = null;

		Connection connection = null;
		PreparedStatement preparedStatement = null;
		ResultSet resultSet = null;

		try {

			String query = "select * from mvc_board where bid = ?";

			connection = dataSource.getConnection();
			preparedStatement = connection.prepareStatement(query);
			preparedStatement.setInt(1, Integer.valueOf(strId)); // 첫번째 물음표에 원하는 값을 넣기
			resultSet = preparedStatement.executeQuery();

			while (resultSet.next()) {
				int bid = resultSet.getInt("bid");
				String bname = resultSet.getString("bname");
				String btitle = resultSet.getString("btitle");
				String bcontent = resultSet.getString("bcontent");
				Timestamp bdate = resultSet.getTimestamp("bdate");
				int bhit = resultSet.getInt("bhit");
				int bgroup = resultSet.getInt("bgroup");
				int bstep = resultSet.getInt("bstep");
				int bindent = resultSet.getInt("bindent");

				board = new BoardVO(bid, bname, btitle, bcontent, bdate, bhit, bgroup, bstep, bindent);

			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (resultSet != null)
					resultSet.close();
				if (preparedStatement != null)
					preparedStatement.close();
				if (connection != null)
					connection.close();

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

		return board;
	}

BoardController.java (코드 추가)

		if (com.equals("/list.do")) {
			command = new BListCommand(); // 다형성 적용하여 BListCommand 생성
			command.execute(request, response); // 객체 전달하여 게시판 글 가져오기
			viewPage = "list.jsp";
		} else if (com.equals("/content_view.do")) {
			/* http://localhost:8282/servlet_yjy_board/content_view.do?bid=5 */
			command = new BContentCommand();
			command.execute(request, response);
			viewPage = "content_view.jsp";
		}

content_view.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Content View</title>
</head>
<body>
	<table width="500" cellpadding="0" cellspacing="0" border="1">
		<form action="modify.do" method="post">
			<input type="hidden" name="bid" value="${content_view.bid}">
			<tr>
				<td>번호</td>
				<td>${content_view.bid}</td>
			</tr>
			<tr>
				<td>히트</td>
				<td>${content_view.bhit}</td>
			</tr>
			<tr>
				<td>이름</td>
				<td><input type="text" name="bname"
					value="${content_view.bname}"></td>
			</tr>
			<tr>
				<td>제목</td>
				<td><input type="text" name="btitle"
					value="${content_view.btitle}"></td>
			</tr>
			<tr>
				<td>내용</td>
				<td><textarea rows="10" name="bcontent">${content_view.bcontent}</textarea></td>
			</tr>
			<tr>
				<td colspan="2"><input type="submit" value="수정">
					&nbsp;&nbsp; <a href="list.do">목록보기</a> &nbsp;&nbsp; <a
					href="delete.do?bid=${content_view.bid}">삭제</a> &nbsp;&nbsp; <a
					href="reply_view.do?bid=${content_view.bid}">답변</a></td>
			</tr>
		</form>
	</table>
</body>
</html>

3. MVC Board 글 수정하기

BoardController.java (modify.do 일 때의 조건문 추가)

		if (com.equals("/list.do")) {
			/* http://localhost:8282/servlet_yjy_board/list.do */
			command = new BListCommand(); // 다형성 적용하여 BListCommand 생성
			command.execute(request, response); // 객체 전달하여 게시판 글 가져오기
			viewPage = "list.jsp";
		} else if (com.equals("/content_view.do")) {
			/* http://localhost:8282/servlet_yjy_board/content_view.do?bid=5 */
			command = new BContentCommand();
			command.execute(request, response);
			viewPage = "content_view.jsp";
		} else if (com.equals("/modify.do")) {
			/* http://localhost:8282/servlet_yjy_board/modify.do */
			command = new BModifyCommand();
			command.execute(request, response);
			viewPage = "list.do";
            // list.jsp가 아닌 list.do로 설정해야 기존 리스트를 볼 수 있다.
		}

BModifyCommand.java

package edu.global.board.command;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import edu.global.board.dao.BDao;
import edu.global.board.vo.BoardVO;

public class BModifyCommand implements BCommand {

	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) {

		/* 수정할 내용 불러오기 (parameter를 정확히 쓴다) */
		String bid = request.getParameter("bid");
		String bname = request.getParameter("bname");
		String bcontent = request.getParameter("bcontent");
		String btitle = request.getParameter("btitle");
		
		BDao dao = new BDao(); // Board DAO 호출

		dao.modify(bid, bname, bcontent, btitle); // 순서대로 modify 한다.
	}

}

BDao.java (modify 함수 추가)

	public int modify(String bid, String bname, String btitle, String bcontent) {

		Connection connection = null;
		PreparedStatement preparedStatement = null;
		// SELECT 문을 쓰는 Query 외에는 ResultSet을 쓰지 않으므로, try~catch에서 지워버린다.

		int rn = 0; // return 할 number
		try {

			String query = "update mvc_board set bname = ?, btitle = ?, bcontent = ? where bid = ?";

			connection = dataSource.getConnection();
			preparedStatement = connection.prepareStatement(query);

			preparedStatement.setString(1, bname);
			preparedStatement.setString(2, btitle);
			preparedStatement.setString(3, bcontent);
			preparedStatement.setInt(4, Integer.valueOf(bid));

			rn = preparedStatement.executeUpdate();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (preparedStatement != null)
					preparedStatement.close();
				if (connection != null)
					connection.close();

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

		return rn;
	}

4. MVC Board 글 삭제

BoardController.java (기능 추가)

		else if(com.equals("/delete.do")) {
			/* http://localhost:8282/servlet_yjy_board/content_view.do?bid=5 */
			command = new BDeleteCommand();
			command.execute(request, response);
			viewPage = "list.do";
		}

BDao.java (삭제하는 함수 추가)

	public int delete(String bid) {
		Connection connection = null;
		PreparedStatement preparedStatement = null;

		int rn = 0;
		try {
			String query = "delete mvc_board where bid = ?";
			connection = dataSource.getConnection();
			preparedStatement = connection.prepareStatement(query);

			preparedStatement.setString(1, bid);
			rn = preparedStatement.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (preparedStatement != null) {
					preparedStatement.close();
				}
				if (connection != null) {
					connection.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

		return rn;
	}

BDeleteCommand.java

package edu.global.board.command;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import edu.global.board.dao.BDao;
import edu.global.board.vo.BoardVO;

public class BDeleteCommand implements BCommand {

	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) {
		String bid = request.getParameter("bid");
		BDao dao = new BDao();
		
		dao.delete(bid);
		
	}

}

Code Review

BoardController (Servlet)

package edu.global.board.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import edu.global.board.command.BCommand;
import edu.global.board.command.BContentCommand;
import edu.global.board.command.BDeleteCommand;
import edu.global.board.command.BListCommand;
import edu.global.board.command.BModifyCommand;

/**
 * Servlet implementation class BoardController
 */
@WebServlet("*.do")
public class BoardController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public BoardController() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		actionDo(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		actionDo(request, response);
	}

	private void actionDo(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("actionDo() ... ");

		request.setCharacterEncoding("UTF-8");

		String viewPage = null;
		BCommand command = null; // Board의 커맨드

		String uri = request.getRequestURI();
		String contextPath = request.getContextPath();
		String com = uri.substring(contextPath.length());

		System.out.println("uri : " + uri);
		System.out.println("contextPath : " + contextPath);
		System.out.println("com : " + com);

		if (com.equals("/list.do")) {
			/* http://localhost:8282/servlet_yjy_board/list.do */
			command = new BListCommand(); // 다형성 적용하여 BListCommand 생성
			command.execute(request, response); // 객체 전달하여 게시판 글 가져오기
			viewPage = "list.jsp";
		} else if (com.equals("/content_view.do")) {
			/* http://localhost:8282/servlet_yjy_board/content_view.do?bid=5 */
			command = new BContentCommand();
			command.execute(request, response);
			viewPage = "content_view.jsp";
		} else if (com.equals("/modify.do")) {
			/* http://localhost:8282/servlet_yjy_board/modify.do */
			command = new BModifyCommand();
			command.execute(request, response);
			viewPage = "list.do";
		} else if(com.equals("/delete.do")) {
			/* http://localhost:8282/servlet_yjy_board/delete.do?bid=5 */
			command = new BDeleteCommand();
			command.execute(request, response);
			viewPage = "list.do";
		}

		RequestDispatcher dispatcher = request.getRequestDispatcher(viewPage);
		dispatcher.forward(request, response);

	}

}

BDao

package edu.global.board.dao;

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

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

import edu.global.board.vo.BoardVO;

public class BDao {

	private DataSource dataSource;

	/* 0. default constructor */
	public BDao() {
		try {
			Context context = new InitialContext();
			dataSource = (DataSource) context.lookup("java:comp/env/jdbc/oracle");

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/* 1. Board List */
	public List<BoardVO> list() {
		List<BoardVO> boards = new ArrayList<BoardVO>();

		Connection connection = null;
		PreparedStatement preparedStatement = null; // 기존 Statement를 보완한 버전
		ResultSet resultSet = null;

		try {

			String query = "select * from mvc_board order by bgroup desc, bstep asc";

			connection = dataSource.getConnection();
			preparedStatement = connection.prepareStatement(query);
			resultSet = preparedStatement.executeQuery();

			while (resultSet.next()) {
				int bid = resultSet.getInt("bid");
				String bname = resultSet.getString("bname");
				String btitle = resultSet.getString("btitle");
				String bcontent = resultSet.getString("bcontent");
				Timestamp bdate = resultSet.getTimestamp("bdate");
				int bhit = resultSet.getInt("bhit");
				int bgroup = resultSet.getInt("bgroup");
				int bstep = resultSet.getInt("bstep");
				int bindent = resultSet.getInt("bindent");

				BoardVO vo = new BoardVO(bid, bname, btitle, bcontent, bdate, bhit, bgroup, bstep, bindent);
				boards.add(vo);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (resultSet != null)
					resultSet.close();
				if (preparedStatement != null)
					preparedStatement.close();
				if (connection != null)
					connection.close();

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

		return boards;
	}

	/* 2. Content View */
	public BoardVO contentView(String strId) {
		BoardVO board = null;

		Connection connection = null;
		PreparedStatement preparedStatement = null;
		ResultSet resultSet = null;

		try {

			String query = "select * from mvc_board where bid = ?";

			connection = dataSource.getConnection();
			preparedStatement = connection.prepareStatement(query);
			preparedStatement.setInt(1, Integer.valueOf(strId)); // 첫번째 물음표에 원하는 값을 넣기
			resultSet = preparedStatement.executeQuery();

			while (resultSet.next()) {
				int bid = resultSet.getInt("bid");
				String bname = resultSet.getString("bname");
				String btitle = resultSet.getString("btitle");
				String bcontent = resultSet.getString("bcontent");
				Timestamp bdate = resultSet.getTimestamp("bdate");
				int bhit = resultSet.getInt("bhit");
				int bgroup = resultSet.getInt("bgroup");
				int bstep = resultSet.getInt("bstep");
				int bindent = resultSet.getInt("bindent");

				board = new BoardVO(bid, bname, btitle, bcontent, bdate, bhit, bgroup, bstep, bindent);

			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (resultSet != null)
					resultSet.close();
				if (preparedStatement != null)
					preparedStatement.close();
				if (connection != null)
					connection.close();

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

		return board;
	}

	/* 3. Content Modify */
	public int modify(String bid, String bname, String btitle, String bcontent) {

		Connection connection = null;
		PreparedStatement preparedStatement = null;
		// SELECT 문을 쓰는 Query 외에는 ResultSet을 쓰지 않으므로, try~catch에서 지워버린다.

		int rn = 0; // return 할 number
		try {

			String query = "update mvc_board set bname = ?, btitle = ?, bcontent = ? where bid = ?";

			connection = dataSource.getConnection();
			preparedStatement = connection.prepareStatement(query);

			preparedStatement.setString(1, bname);
			preparedStatement.setString(2, btitle);
			preparedStatement.setString(3, bcontent);
			preparedStatement.setInt(4, Integer.valueOf(bid));

			rn = preparedStatement.executeUpdate();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (preparedStatement != null)
					preparedStatement.close();
				if (connection != null)
					connection.close();

			} catch (Exception e) {
				e.printStackTrace();
			}

		}

		return rn;
	}

	/* 4. Content Delete */
	public int delete(String bid) {
		Connection connection = null;
		PreparedStatement preparedStatement = null;

		int rn = 0;
		try {
			String query = "delete mvc_board where bid = ?";
			connection = dataSource.getConnection();
			preparedStatement = connection.prepareStatement(query);

			preparedStatement.setString(1, bid);
			rn = preparedStatement.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (preparedStatement != null) {
					preparedStatement.close();
				}
				if (connection != null) {
					connection.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

		return rn;
	}

}
profile
velog, GitHub, Notion 등에 작업물을 정리하고 있습니다.

0개의 댓글