① scoreDAO 추가 작성
package com.score;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class ScoreDAO {
private Connection conn;
//의존성 주입
public ScoreDAO(Connection conn){
this.conn = conn;
}
//입력
public int insertData(ScoreDTO dto){
int result = 0;
PreparedStatement pstmt = null;
String sql;
try {
sql = "insert into score (hak,name,kor,eng,mat) ";
sql+= "values (?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dto.getHak());
pstmt.setString(2, dto.getName());
pstmt.setInt(3, dto.getKor());
pstmt.setInt(4, dto.getEng());
pstmt.setInt(5, dto.getEng());
result = pstmt.executeUpdate();
pstmt.close();
} catch (Exception e) {
System.out.println(e.toString());
}
return result;
}
//데이터 가져오기
public List<ScoreDTO> getList(){
List<ScoreDTO> lists = new ArrayList<ScoreDTO>();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql;
try {
sql = "select hak,name,kor,eng,mat,(kor+eng+mat) tot, (kor+eng+mat)/3 ave,";
sql+= "rank() over(order by (kor+eng+mat) desc) rank ";
sql+= "from score";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()){
ScoreDTO dto = new ScoreDTO();
dto.setHak(rs.getString("hak"));
dto.setName(rs.getString("name"));
dto.setKor(rs.getInt("kor"));
dto.setEng(rs.getInt("eng"));
dto.setMat(rs.getInt("mat"));
dto.setTot(rs.getInt("tot"));
dto.setAve(rs.getInt("ave"));
dto.setRank(rs.getInt("rank"));
lists.add(dto);
}
pstmt.close();
rs.close();
} catch (Exception e) {
System.out.println(e.toString());
}
return lists;
}
//학번 조희
public ScoreDTO getReadData(String hak){
ScoreDTO dto = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql;
try {
sql = "select hak,name,kor,eng,mat from score ";
sql+= "where hak=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, hak);
rs = pstmt.executeQuery();
if(rs.next()){
dto = new ScoreDTO();
dto.setHak(rs.getString("hak"));
dto.setName(rs.getString("name"));
dto.setKor(rs.getInt("kor"));
dto.setEng(rs.getInt("eng"));
dto.setMat(rs.getInt("mat"));
}
rs.close();
pstmt.close();
} catch (Exception e) {
System.out.println(e.toString());
}
return dto;
}
//데이터 수정
public int updateData(ScoreDTO dto){
int result=0;
PreparedStatement pstmt = null;
String sql;
try {
sql = "update score set kor=?,eng=?,mat=? ";
sql+= "where hak=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, dto.getKor());
pstmt.setInt(2, dto.getEng());
pstmt.setInt(3, dto.getMat());
pstmt.setString(4, dto.getHak());
result = pstmt.executeUpdate();
pstmt.close();
} catch (Exception e) {
System.out.println(e.toString());
}
return result;
}
//데이터 삭제
public int deleteData(String hak){
int result = 0;
PreparedStatement pstmt = null;
String sql;
try {
sql = "delete score where hak=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, hak);
result = pstmt.executeUpdate();
pstmt.close();
} catch (Exception e) {
System.out.println(e.toString());
}
return result;
}
}
② list.jsp 수정
<%@page import="com.score.ScoreDTO"%>
<%@page import="java.util.List"%>
<%@page import="com.score.ScoreDAO"%>
<%@page import="com.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
Connection conn = DBConn.getConnection();
ScoreDAO dao = new ScoreDAO(conn);
List<ScoreDTO> lists = dao.getList();
DBConn.close();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>성적처리 리스트</title>
<style type="text/css">
*{
padding: 0px;
margin: 0px;
}
body {
font-size: 10pt;
}
td{
font-size: 10pt;
}
.btn {
font-size: 10pt;
background: #e6e6e6;
}
</style>
</head>
<body>
</br></br>
<table width="700" cellpadding="0" cellspacing="3" align="center" bgcolor="#e4e4e4">
<tr height="50">
<td bgcolor="#ffffff" style="padding-left: 10px">
<b>성적처리 리스트 화면</b>
</td>
</tr>
</table>
</br>
<table width="650" cellpadding="0" cellspacing="3" align="center">
<tr height="35">
<td align="right">
<input type="button" class="btn" value="글쓰기"
onclick="javascript:location.href='<%=cp%>/score/write.jsp';">
</td>
</tr>
</table>
<table width="650" cellpadding="0" cellspacing="1" align="center" bgcolor="#cccccc">
<tr height="30">
<td align="center" bgcolor="#e6e6e6" width="80">학번</td>
<td align="center" bgcolor="#e6e6e6" width="80">이름</td>
<td align="center" bgcolor="#e6e6e6" width="60">국어</td>
<td align="center" bgcolor="#e6e6e6" width="60">영어</td>
<td align="center" bgcolor="#e6e6e6" width="60">수학</td>
<td align="center" bgcolor="#e6e6e6" width="60">총점</td>
<td align="center" bgcolor="#e6e6e6" width="60">평균</td>
<td align="center" bgcolor="#e6e6e6" width="60">석차</td>
<td align="center" bgcolor="#e6e6e6" width="130">수정</td>
</tr>
<%for(ScoreDTO dto : lists) {%>
<tr height="30">
<td align="center" bgcolor="#ffffff"><%=dto.getHak()%></td>
<td align="center" bgcolor="#ffffff"><%=dto.getName()%></td>
<td align="center" bgcolor="#ffffff"><%=dto.getKor()%></td>
<td align="center" bgcolor="#ffffff"><%=dto.getEng()%></td>
<td align="center" bgcolor="#ffffff"><%=dto.getMat()%></td>
<td align="center" bgcolor="#ffffff"><%=dto.getTot()%></td>
<td align="center" bgcolor="#ffffff"><%=dto.getAve()%></td>
<td align="center" bgcolor="#ffffff"><%=dto.getRank()%></td>
<td align="center" bgcolor="#ffffff">
<a href="update.jsp?hak=<%=dto.getHak()%>" style="text-decoration: none">[수정] </a>/
<a href="delete_ok.jsp?hak=<%=dto.getHak()%>" style="text-decoration: none">[삭제]</a>
</td>
<%} %>
</tr>
</table>
</body>
</html>
③ update.jsp 작성
<%@page import="com.score.ScoreDTO"%>
<%@page import="com.score.ScoreDAO"%>
<%@page import="com.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
Connection conn = DBConn.getConnection();
ScoreDAO dao = new ScoreDAO(conn);
String hak = request.getParameter("hak");
ScoreDTO dto = dao.getReadData(hak); //학번으로 score정보 가져옴
DBConn.close();
if(dto==null)
response.sendRedirect("list.jsp");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>성적처리 수정</title>
<script type="text/javascript">
function sendIt(){
var f = document.myForm;
f.action = "<%=cp%>/score/update_ok.jsp";
f.submit();
}
</script>
<style type="text/css">
*{
padding: 0px;
margin: 0px;
}
body {
font-size: 10pt;
}
td{
font-size: 10pt;
}
.txtField {
font-size: 10pt;
border: 1px solid;
}
.btn {
font-size: 10pt;
background: #e6e6e6;
}
</style>
</head>
<body>
</br></br>
<table width="500" cellpadding="0" cellspacing="3" align="center" bgcolor="#e4e4e4">
<tr height="50">
<td bgcolor="#ffffff" style="padding-left: 10px;">
<b>성적처리 수정화면</b>
</td>
</tr>
</table>
</br>
<form action="" method="post" name="myForm">
<table width="500" cellpadding="0" cellspacing="0" align="center">
<tr height="2"><td colspan="2" bgcolor="#cccccc"></td></tr>
<tr height="30">
<td align="center" width="100" bgcolor="#e6e6e6">학번</td>
<td style="padding-left: 5px;">
<%=dto.getHak()%>
</td>
</tr>
<tr height="1"><td colspan="2" bgcolor="#cccccc"></td></tr>
<tr height="30">
<td align="center" width="100" bgcolor="#e6e6e6">이름</td>
<td style="padding-left: 5px;">
<%=dto.getName()%>
</td>
</tr>
<tr height="1"><td colspan="2" bgcolor="#cccccc"></td></tr>
<tr height="30">
<td align="center" width="100" bgcolor="#e6e6e6">국어</td>
<td style="padding-left: 5px;">
<input type="text" name="kor" value="<%=dto.getKor()%>" size="10" maxlength="3" class="txtField">
</td>
</tr>
<tr height="1"><td colspan="2" bgcolor="#cccccc"></td></tr>
<tr height="30">
<td align="center" width="100" bgcolor="#e6e6e6">영어</td>
<td style="padding-left: 5px;">
<input type="text" name="eng" value="<%=dto.getEng()%>" size="10" maxlength="3" class="txtField">
</td>
</tr>
<tr height="1"><td colspan="2" bgcolor="#cccccc"></td></tr>
<tr height="30">
<td align="center" width="100" bgcolor="#e6e6e6">수학</td>
<td style="padding-left: 5px;">
<input type="text" name="mat" value="<%=dto.getMat()%>" size="10" maxlength="3" class="txtField">
</td>
</tr>
<tr height="2"><td colspan="2" bgcolor="#cccccc"></td></tr>
<tr height="35">
<td align="center" colspan="2">
<input type="hidden" name="hak" value="<%=dto.getHak()%>">
<input type="button" class="btn" value="수정완료" onclick="sendIt();">
<input type="button" class="btn" value="수정취소"
onclick="javascript:location.href='<%=cp%>/score/list.jsp'">
</table>
</form>
</body>
</html>
write.jsp와 똑같다.
다만, 수정하고자 하는 데이터의 값이 입력창에 미리 들어가 있다.
④ update_ok.jsp 작성
<%@page import="com.score.ScoreDAO"%>
<%@page import="com.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<jsp:useBean id="dto" class="com.score.ScoreDTO" scope="page"/>
<jsp:setProperty property="*" name="dto"/>
<%
Connection conn = DBConn.getConnection();
ScoreDAO dao = new ScoreDAO(conn);
int result = dao.updateData(dto);
DBConn.close();
response.sendRedirect("list.jsp");
%>
⑤ delete_ok.jsp 작성
<%@page import="com.score.ScoreDAO"%>
<%@page import="com.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
String hak = request.getParameter("hak");
Connection conn = DBConn.getConnection();
ScoreDAO dao = new ScoreDAO(conn);
int result = dao.deleteData(hak);
DBConn.close();
response.sendRedirect("list.jsp");
%>
결과
① 입력
② 리스트 화면
③ 수정 화면
이세영의 데이터가 올라가 value에 미리 들어가 있음
④ 수정 성공
⑤삭제
'STUDY > JSP' 카테고리의 다른 글
Jsp 8일차 - 게시판(자바스크립트) (0) | 2019.02.21 |
---|---|
Jsp 8일차 - 게시판(css작성) (0) | 2019.02.21 |
Jsp 6일차 - 간단한 웹을 만드는 방법 (0) | 2019.02.19 |
Jsp 6일차 - 포워드 (0) | 2019.02.19 |
Jsp 6일차 - 액션태그 (0) | 2019.02.19 |
댓글