스프링 19강 - 스프링 MVC 계층형 게시판 (4/5) with 오라클
November 16, 2018
지금은 Spring JDBC, MyBatis를 전혀쓰지 않고 JDBC만 이용해서 진행하고 있다. 중복되는 것이 많고 귀찮다~ 라고 느끼고 있으면 잘하고 있는 것.
19-1 글 수정 페이지 만들기
BController 작성
@RequestMapping(value="/modify", method=RequestMethod.POST )
public String modify(HttpServletRequest request, Model model){
System.out.println("modify()");
model.addAttribute("request", request);
command = new BModifyCommand();
command.execute(model);
return "redirect:list";
}
BModifyCommand 작성
public class BModifyCommand implements BCommand {
@Override
public void execute(Model model) {
// TODO Auto-generated method stub
Map<String, Object> map = model.asMap();
HttpServletRequest request = (HttpServletRequest) map.get("request");
String bId = request.getParameter("bId");
String bName = request.getParameter("bName");
String bTitle = request.getParameter("bTitle");
String bContent = request.getParameter("bContent");
BDao dao = new BDao();
dao.modify(bId, bName, bTitle, bContent);
}
}
DAO 작성
public class BDao {
//생략
public void modify(String bId, String bName, String bTitle, String bContent) {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = dataSource.getConnection();
String query = "update mvc_board set bName = ?, bTitle = ?, bContent = ? where bId = ?";
preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1, bName);
preparedStatement.setString(2, bTitle);
preparedStatement.setString(3, bContent);
preparedStatement.setInt(4, Integer.parseInt(bId));
int rn = preparedStatement.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
try {
if(preparedStatement != null) preparedStatement.close();
if(connection != null) connection.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
19-2 글 삭제 페이지 만들기
BController 작성
@RequestMapping("/delete")
public String delete(HttpServletRequest request, Model model) {
System.out.println("delete()");
model.addAttribute("request", request);
command = new BDeleteCommand();
command.execute(model);
return "redirect:list";
}
BDeleteCommand 작성
public class BDeleteCommand implements BCommand {
@Override
public void execute(Model model) {
// TODO Auto-generated method stub
Map<String, Object> map = model.asMap();
HttpServletRequest request = (HttpServletRequest) map.get("request");
String bId = request.getParameter("bId");
BDao dao = new BDao();
dao.delete(bId);
}
}
DAO
public class BDao {
//생략
public void delete(String bId) {
// TODO Auto-generated method stub
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = dataSource.getConnection();
String query = "delete from mvc_board where bId = ?";
preparedStatement = connection.prepareStatement(query);
preparedStatement.setInt(1, Integer.parseInt(bId));
int rn = preparedStatement.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
try {
if(preparedStatement != null) preparedStatement.close();
if(connection != null) connection.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
참고자료
- 스프링과정19강 블스(김명호 강사)