겉바속촉
[html] jsp로 DB에 저장하기-수정,삭제 본문
728x90
반응형
2020/06/17 - [취업일기/블록체인] - [html] jsp로 DB에 저장하기
지난번에 했던 곳에서 이어서 가야합니다:)
다음과 같이 list가 나온 상태에서
수정이나 삭제를 누르면 가능하도록 기능을 추가해주어야합니다
우선 다음과 같이 info안에다가
jsp파일 3개를 만들어줍니다
infoupdateform를 이제 작성해줄건데요
그 전에
우리가 수정을 하기 위해서 수정을 클릭하면
수정하고 싶은 그 사람의 정보를 가지고와야합니다.
그래서 infoDAO로 가서 메서드를 하나 더 작성해주시는거에요:)
public InfoDTO getData(String num)
{
InfoDTO dto=new InfoDTO();
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="select * from info where num=?";
conn=getConnection();
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, num);
rs=pstmt.executeQuery();
//찾으려는 데이타 하나일때는 if
if(rs.next())
{
dto.setNum(rs.getString("num"));
dto.setName(rs.getString("name"));
dto.setAddr(rs.getString("addr"));
dto.setSdate(rs.getTimestamp("sdate"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return dto;
}
그리고 infoupdateform를 작성해주시는거에요:)
그래서 수정할 값을 적을 수 있는 form이 완성되는 것이겠죠
<%@page import="info.model.InfoDTO"%>
<%@page import="info.model.InfoDAO"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
</head>
<body>
<%
String num=request.getParameter("num");
InfoDAO dao=new InfoDAO();
InfoDTO dto=dao.getData(num);
%>
<form action="infoUpdateAction.jsp" method="post">
<table class="table table-bordered">
<tr>
<th>이름</th>
<td>
<input type="text" name="name" size="7"
value="<%=dto.getName() %>">
</td>
</tr>
<tr>
<th>주소</th>
<td>
<input type="text" name="addr" size="20"
value="<%=dto.getAddr() %>">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<!-- hidden으로 num값 넘겨야한다...위치상관없음 -->
<input type="hidden" name="num" value="<%=num%>">
<input type="submit" value="전송">
<input type="button" value="목록"
onclick="location.href='infoList.jsp'">
</td>
</tr>
</table>
</form>
</body>
</html>
그러면 이제 update가 수행될 코드를 작성해주세요
infoUpdateAction.jsp 입니다
<%@page import="info.model.InfoDAO"%>
<%@page import="info.model.InfoDTO"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String num=request.getParameter("num");
String name=request.getParameter("name");
String addr=request.getParameter("addr");
InfoDTO dto = new InfoDTO();
dto.setNum(num);
dto.setName(name);
dto.setAddr(addr);
///dao에서 update메소드 받아오기
InfoDAO dao=new InfoDAO();
dao.infoUpdate(dto);
//목록으로 이동
response.sendRedirect("infoList.jsp");
%>
</body>
</html>
이제는 삭제를 클릭했을 때 삭제가 되었으면 좋겠죠??
DAO로 가서 메서드 만들어주시면 됩니다
다음과 같이 작성하신 것을 추가해주세요:)
//////////////삭제처리
public void infoDelete(InfoDTO dto)
{
Connection conn=null;
PreparedStatement pstmt=null;
String sql="delete from info where num = ?";
conn=getConnection();
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, dto.getNum());
pstmt.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
이제 delete가 실행되는 코드를 작성해주러 가봅시다
infoDeleteAction.jsp 가 되겠네요:)
<%@page import="info.model.InfoDAO"%>
<%@page import="info.model.InfoDTO"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String num=request.getParameter("num");
String name=request.getParameter("name");
String addr=request.getParameter("addr");
InfoDTO dto=new InfoDTO();
dto.setNum(num);
dto.setName(name);
dto.setAddr(addr);
InfoDAO dao=new InfoDAO();
dao.infoDelete(dto);
response.sendRedirect("infoList.jsp");
%>
</body>
</html>
수정과 삭제를 해준 결과
728x90
반응형
'IT일기(하반기) > 블록체인' 카테고리의 다른 글
[Blockchain] 기술의 역사 (0) | 2020.07.23 |
---|---|
[html] jsp로 DB에 저장하기 2 (2) | 2020.06.22 |
[html] jsp로 DB에 저장하기 (2) | 2020.06.17 |
Tomcat 설치하기 (0) | 2020.06.09 |
my SQL 다운로드 (0) | 2020.06.08 |