겉바속촉

[html] jsp로 DB에 저장하기-수정,삭제 본문

IT일기(하반기)/블록체인

[html] jsp로 DB에 저장하기-수정,삭제

겉바속촉 2020. 6. 18. 15:31
728x90
반응형

2020/06/17 - [취업일기/블록체인] - [html] jsp로 DB에 저장하기

 

[html] jsp로 DB에 저장하기

우선 DTO랑 DAO개념들 잡고 갈게요:) DTO(Data Transfer Object) :특정테이블의 정보를 단위별로 정의한 클래스 필수변수와 set,get 메소드만 으로 이루어짐 DAO(Data Access Object) :데이타 베이스에 접속, 명령..

2-juhyun-2.tistory.com

 

지난번에 했던 곳에서 이어서 가야합니다:)

 

다음과 같이 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