๋ชฉ์ฐจ
1. 2023.12.13-14(์-๋ชฉ)
โ JAVA Bean(์๋ฐ ๋น) โ
โ ๊ฐ์
- ์๋ฐ๋ก ์์ฑ๋์ด์ง ์ปดํฌ๋ํธ(๊ฐ์ฒด)๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ผ์ปซ๋ ๋ง
โ ์ฌ์ฉ ๋ชฉ์
- JSP ํ์ด์ง์์ \*\*๋ก์ง ๋ถ๋ถ์ ๋ถ๋ฆฌ\*\*ํ์ฌ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉ ํจ์ผ๋ก์จ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑ ํจ์จ์ ๋์ด๊ธฐ ์ํจ
โ JAVA Bean ๋ง๋ค๊ธฐ
- ์๋ฐ ๋น์ ์๋ฐ ํด๋์ค์ด๋ฏ๋ก ์๋ฐ ํด๋์ค๋ฅผ ์ค๊ณํ๋ ๊ฒ๊ณผ ๊ธฐ๋ณธ ๊ท์น์ด ๊ฐ๋ค.
- ์๋ฐ ๋น์์๋ ๋ฉค๋ฒ ๋ณ์๋ฅผ ํ๋กํผํฐ(Property)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ํด๋์ค ์ ์ธ์ ใpublicใ, ํ๋กํผํฐ ์ ์ธ์ ใprivateใ ์ผ๋ก ํ๋ค.
- ํ๋กํผํฐ ๋น ํ๋์ getter ์ setter๋ฅผ ๊ฐ๋๋ค.
- (๋งค๊ฐ๋ณ์๊ฐ ์๋) ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํฌํจํ๋ค.
ใด \*\*์ฌ์ฉ์์ ์ ์์ฑ์๋ฅผ ๋งค๊ฐ๋ณ์ ํํ๋ก ๋ง๋ค๋ ค๋ฉด, ๊ธฐ๋ณธ์์ฑ์๋ฅผ ๋ง๋ค์ด์ผํจ\*\*
- ์ง๋ ฌํํ ์ ์์ด์ผ ํ๋ค.
ใด \*\*์๋ฆฌ์ผ๋ผ์ด์ฆ ..\*\*
- POJO(Plane Old Java Object)
ใด \*\*ํน์ ํด๋์ค๋ฅผ ์์์ ๊ฐ๋
์ด ์ ์ฉ๋์ง ์์, ์ค๋ธ์ ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ ๊ฒ\*\*
F_WebApp10
[๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋ ํ์๊ด๋ฆฌ ์ค์ต]



ใดSQL
ใดใดWebApp10_scott.sql
SELECT USER
FROM DUAL;
--==>> SCOTT
SELECT *
FROM TAB;
PERGE RECYCLEBIN;
SELECT *
FROM TBL_MEMBER;
DESC TBL_MEMBER;
--==>>
/*
์ด๋ฆ ๋? ์ ํ
---- -------- ------------
SID NOT NULL NUMBER
NAME VARCHAR2(30)
TEL VARCHAR2(40)
*/
TRUNCATE TABLE TBL_MEMBER;
--==>> Table TBL_MEMBER์ด(๊ฐ) ์๋ ธ์ต๋๋ค.
DROP SEQUENCE MEMBERSEQ;
--==>> Sequence MEMBERSEQ์ด(๊ฐ) ์ญ์ ๋์์ต๋๋ค.
CREATE SEQUENCE MEMBERSEQ
NOCACHE;
--==>> Sequence MEMBERSEQ์ด(๊ฐ) ์์ฑ๋์์ต๋๋ค.
INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, '๊ฐํ์ฑ', '010-1111-1111');
INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, '๊น๋๋ฏผ', '010-2222-2222');
INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, '์ด์ฃผํ', '010-3333-3333');
INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, '์์ฌ์ฉ', '010-4444-4444');
INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, '๊น์ง๋ฏผ', '010-5555-5555');
--==>> 1 ํ ์ด(๊ฐ) ์ฝ์
๋์์ต๋๋ค.*5
SELECT SID, NAME, TEL
FROM TBL_MEMBER
ORDER BY SID;
--==>>
/*
1 ๊ฐํ์ฑ 010-1111-1111
2 ๊น๋๋ฏผ 010-2222-2222
3 ์ด์ฃผํ 010-3333-3333
4 ์์ฌ์ฉ 010-4444-4444
5 ๊น์ง๋ฏผ 010-5555-5555
*/
COMMIT;
--==>> ์ปค๋ฐ ์๋ฃ.
--โ ์ธ์ ์ํ์ธ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์ฑ
SELECT COUNT(*) AS COUNT
FROM TBL_MEMBER;
--> ํ ์ค ๊ตฌ์ฑ
SELECT COUNT(*) AS COUNT FROM TBL_MEMBER
;
--==>> 5
ใด/WebApp10/src/com/test/
ใดใดMemberDAO.java
/* ==========================================
MemberDAO.java
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ฒ๋ฆฌ ์ ์ฉ ๊ฐ์ฒด ํ์ฉ
=============================================*/
package com.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.util.DBConn;
public class MemberDAO
{
// ์ฃผ์ ์์ฑ ๊ตฌ์ฑ
private Connection conn;
/*
* public Connection getConn() { return conn; }
*/
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ -> ์์ฑ์ ํํ๋ก ์ ์
public MemberDAO() throws ClassNotFoundException, SQLException
{
conn = DBConn.getConnection();
}
// ๋ฐ์ดํฐ ์
๋ ฅ ๋ฉ์๋ ์ ์
public int add(MemberDTO dto) throws SQLException
{
int result = 0;
String sql = "INSERT INTO TBL_MEMBER(SID,NAME,TEL)"
+ " VALUES(MEMBERSEQ.NEXTVAL, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getTel());
result = pstmt.executeUpdate();
pstmt.close();
return result;
}
// ๋ฐ์ดํฐ ์ถ๋ ฅ ๋ฉ์๋ ์ ์
public ArrayList<MemberDTO> lists() throws SQLException
{
ArrayList<MemberDTO> result = new ArrayList<MemberDTO>();
String sql = "SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
MemberDTO dto = new MemberDTO();
dto.setSid(rs.getString("SID"));
dto.setName(rs.getString("NAME"));
dto.setTel(rs.getString("TEL"));
result.add(dto);
}
rs.close();
pstmt.close();
return result;
}
// ์ ์ฒด ์ธ์ ์ ํ์ธ์ ์ํ ๋ฉ์๋ ์ ์
public int count() throws SQLException
{
int result = 0;
String sql = "SELECT COUNT(*) AS COUNT FROM TBL_MEMBER";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
if(rs.next())
result = rs.getInt("COUNT");
rs.close();
pstmt.close();
return result;
}
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ข
๋ฃ ๋ด๋น ๋ฉ์๋ ์ ์
public void close() throws SQLException
{
DBConn.close();
}
}
ใดใดMemberDTO.java
/* ==========================================
MemberDTO.java
- ๋ฐ์ดํฐ ๋ณด๊ด ๋ฐ ์ ์ก ๊ฐ์ฒด ํ์ฉ
=============================================*/
package com.test;
public class MemberDTO
{
// ์ฃผ์ ์์ฑ ๊ตฌ์ฑ
private String sid, name, tel;
//-- TBL_MEMBER ์ปฌ๋ผ ๊ตฌ์กฐ
// getter / setter ๊ตฌ์ฑ
public String getSid()
{
return sid;
}
public void setSid(String sid)
{
this.sid = sid;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getTel()
{
return tel;
}
public void setTel(String tel)
{
this.tel = tel;
}
}
ใด C:\WebStudy\WebApp10\WebContent
ใดใดMemberinsert.jsp
<%@page import="com.test.MemberDTO"%>
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// MemberInsert.jsp
//-- ๋ฐ์ดํฐ ์
๋ ฅ ์ก์
์ฒ๋ฆฌ ํ์ด์ง
// ์ด์ ํ์ด์ง(MemberList.jsp)๋ก๋ถํฐ ๋์ด์จ ๋ฐ์ดํฐ ์์
//-> userName, userTel
request.setCharacterEncoding("UTF-8");
//-- ํ๊ธ ๋ฐ์ดํฐ๊ฐ ๊นจ์ง์ง ์๋๋ก ์ธ์ฝ๋ฉ ์ค์
// ์ ์ฝ๋๋ฅผ ์ํํ ํ ๋ฐ์ดํฐ ์์
String userName = request.getParameter("userName");
String userTel = request.getParameter("userTel");
MemberDAO dao = null;
try
{
dao = new MemberDAO();
// MemberDTO ๊ตฌ์ฑ
MemberDTO member = new MemberDTO();
member.setName(userName);
member.setTel(userTel);
// dao ์ add() ๋ฉ์๋ ํธ์ถ -> insert ์ฟผ๋ฆฌ๋ฌธ ์ํ
dao.add(member);
// ํ์ํ๋ค๋ฉด add()๋ฉ์๋์ ๋ฐํ๊ฐ์ ๋ฐ์
// insert ์ก์
์ ์ ์ ์ฒ๋ฆฌ ์ฌ๋ถ ํ์ธ ํ ์ถ๊ฐ ์ฝ๋ ๊ตฌ์ฑ ๊ฐ๋ฅ~!!!
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
// URL ์ฃผ์๊ฐ ์ ํ์๋ ์ชฝ์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
//-> ์ด ์ฃผ์๋ฅผ ๋ค์ ์์ฒญํด์ ์ฐพ์๊ฐ ์ ์๋๋ก ํ์ธ์~!!!
// (๊ทธ๋ผ ์
๋ ฅ๊ฐ์ด ๋ฐ์๋ ๊ฒฐ๊ณผ๋ฌผ์ ํ์ธํ ์ ์๋ค.)
response.sendRedirect("MemberList.jsp");
// ์๋ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง๋ ๋ชจ๋ ์ญ์
%>
ใดใดMemberList.jsp
<%@page import="com.test.MemberDTO"%>
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
StringBuffer str = new StringBuffer();
MemberDAO dao = null;
String memberCount = "<span id='memberCount'>์ ์ฒด ์ธ์ ์ : "; // 5๋ช
</span>
try
{
dao = new MemberDAO();
memberCount += dao.count() + "๋ช
</span>";
str.append("<table>");
str.append("<tr><th>๋ฒํธ</th><th>์ด๋ฆ</th><th>์ ํ๋ฒํธ</th></tr>");
// MemberDAO์ lists() ๋ฉ์๋ ํธ์ถ
//-- ๋ฐ๋ณต๋ฌธ์ ํตํด <table> ํ์ ์๋ฆฌ๋จผํธ ์์ฑ
for(MemberDTO member: dao.lists())
{
str.append("<tr>");
str.append("<td>"+member.getSid()+"</td>");
str.append("<td>"+member.getName()+"</td>");
str.append("<td>"+member.getTel()+"</td>");
}
str.append("</table>");
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
// ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ข
๋ฃ
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberList.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
<style>
.errMsg {display:none; color:red;}
</style>
<script type="text/javascript">
function formCheck()
{
//ํ์ธ
//alert("ํจ์ ํธ์ถ~!!!");
var userName = document.getElementById("userName");
var userMsg = document.getElementById("nameMsg");
nameMsg.style.display = "none";
if(userName.value == "")
{
nameMsg.style.display = "inline";
userName.focus();
return false;
}
//return false;
return true;
}
</script>
</head>
<body class="section">
<div>
<h1>๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋ ํ์๊ด๋ฆฌ ์ค์ต</h1>
<hr>
</div>
<div class="layout">
<p>DAO, DTO ๊ฐ๋
์ ์ฉ</p>
<form class="tbl_box" action="MemberInsert.jsp" method="post" onsubmit="return formCheck();">
<table>
<tr>
<th>์ด๋ฆ(*)</th>
<td>
<input type="text" id="userName" name="userName" class="txt">
<span class="errMsg" id="nameMsg">์ด๋ฆ์ ์
๋ ฅํด์ผ ํฉ๋๋ค.</span>
</td>
</tr>
<tr>
<th>์ ํ๋ฒํธ</th>
<td>
<input type="text" id="userTel" name="userTel" class="txt">
</td>
</tr>
<tr>
<td colspan="2">
<button type="submit" id="btnAdd" class="btn" style="width: 200px;">ํ์ ์ถ๊ฐ</button>
</td>
</tr>
</table>
</form>
<!-- <div class="tbl_box">
<span id="memberCount">์ ์ฒด ์ธ์ ์ : 5๋ช
</span><br><br>
<table>
<tr>
<th>๋ฒํธ</th><th>์ด๋ฆ</th><th>์ ํ๋ฒํธ</th>
</tr>
<tr>
<td>1</td>
<td>๊ณ ๊ธธ๋</td>
<td>010-1111-1111</td>
</tr>
<tr>
<td>2</td>
<td>๋๋ฆฌ</td>
<td>010-2222-2222</td>
</tr>
<tr>
<td>3</td>
<td>๋์ฐ๋</td>
<td>010-3333-3333</td>
</tr>
<tr>
<td>4</td>
<td>ํฌ๋์ด</td>
<td>010-4444-4444</td>
</tr>
<tr>
<td>5</td>
<td>๋ง์ด์ฝ</td>
<td>010-5555-5555</td>
</tr>
</table>
</div> -->
<!-- ์ ์ฒด ์ธ์์ ํ์ธ -->
<%=memberCount %>
<!-- ๋ฒํธ ์ด๋ฆ ์ ํ๋ฒํธ ํญ๋ชฉ์ ๋ํ ๋ฆฌ์คํธ ๊ตฌ์ฑ -->
<%=str.toString() %>
</div>
</body>
</html>
F_WebApp11
[์ฑ์ ๋ฆฌ์คํธ ์ถ๋ ฅ ํ๋ก๊ทธ๋จ(ver.2)]


ใดSQL
ใดใดWebApp11_scott.sql
>> 9์ ๋์ผ<<
ใด/WebApp10/src/com/test/
ใดใดScoreDTO.Java
package com.test;
public class ScoreDTO
{
// ์ฃผ์ ์์ฑ ๊ตฌ์ฑ
private String name;
private int sid, kor, eng, mat, tot;
private double avg;
// getter / setter ๊ตฌ์ฑ
public String getName()
{
return name;
}
public int getSid()
{
return sid;
}
public void setSid(int sid)
{
this.sid = sid;
}
public int getTot()
{
return tot;
}
public void setTot(int tot)
{
this.tot = tot;
}
public double getAvg()
{
return avg;
}
public void setAvg(double avg)
{
this.avg = avg;
}
public void setName(String name)
{
this.name = name;
}
public int getKor()
{
return kor;
}
public void setKor(int kor)
{
this.kor = kor;
}
public int getEng()
{
return eng;
}
public void setEng(int eng)
{
this.eng = eng;
}
public int getMat()
{
return mat;
}
public void setMat(int mat)
{
this.mat = mat;
}
}
ใดใดScoreDAO.Java
package com.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.util.DBConn;
public class ScoreDAO
{
private Connection conn;
public ScoreDAO() throws ClassNotFoundException, SQLException
{
conn = DBConn.getConnection();
}
public int add(ScoreDTO dto) throws SQLException
{
int result = 0;
String sql = "INSERT INTO TBL_SCORE(SID, NAME, KOR, ENG, MAT)"
+ " VALUES(SCORESEQ.NEXTVAL, ?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,dto.getName());
pstmt.setInt(2, dto.getKor());
pstmt.setInt(3, dto.getEng());
pstmt.setInt(4, dto.getMat());
result = pstmt.executeUpdate();
pstmt.close();
return result;
}
public ArrayList<ScoreDTO> lists() throws SQLException
{
ArrayList<ScoreDTO> result = new ArrayList<ScoreDTO>();
String sql = "SELECT SID, NAME, KOR , ENG, MAT"
+ " , (KOR+ENG+MAT) AS TOT"
+ " , (KOR+ENG+MAT)/3 AS AVG"
+ " FROM TBL_SCORE ORDER BY SID";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
ScoreDTO score = new ScoreDTO();
score.setSid(rs.getInt("SID"));
score.setName(rs.getString("NAME"));
score.setKor(rs.getInt("KOR"));
score.setEng(rs.getInt("ENG"));
score.setMat(rs.getInt("MAT"));
score.setTot(rs.getInt("TOT"));
score.setAvg(rs.getDouble("AVG"));
result.add(score);
}
rs.close();
pstmt.close();
return result;
}
public int count() throws SQLException
{
int result = 0;
String sql = "SELECT COUNT(*) AS COUNT FROM TBL_SCORE";
PreparedStatement pstmt = conn.prepareStatement(sql);
result = pstmt.executeUpdate();
return result;
}
public void close() throws SQLException
{
DBConn.close();
}
}
ใด/WebApp12/WebContent
ใดใดScoreList.jsp
<%@page import="com.test.ScoreDTO"%>
<%@page import="com.test.ScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
StringBuffer str = new StringBuffer();
ScoreDAO dao = null;
try
{
dao = new ScoreDAO();
// ์ถ๋ ฅ
str.append("<table>");
str.append("<tr><th>๋ฒํธ</th><th>์ด๋ฆ</th><th>๊ตญ์ด์ ์</th><th>์์ด์ ์</th><th>์ํ์ ์</th><th>์ด์ </th><th>ํ๊ท </th><tr>");
for(ScoreDTO score : dao.lists())
{
str.append("<tr>");
str.append("<td>"+score.getSid()+"</td>");
str.append("<td>"+score.getName()+"</td>");
str.append("<td>"+score.getKor()+"</td>");
str.append("<td>"+score.getEng()+"</td>");
str.append("<td>"+score.getMat()+"</td>");
str.append("<td>"+score.getTot()+"</td>");
str.append("<td>"+String.format("%.1f",score.getAvg())+"</td>");
str.append("</tr>");
}
str.append("</table>");
}
catch(Exception e)
{
System.out.println(e.toString());
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ScoreList.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript">
function scoreInsert()
{
//ํ์ธ
//alert("์ฐ๊ฒฐ ์ฑ๊ณต");
var userName = document.getElementById("userName");
var userKor = document.getElementById("userKor");
var userEng = document.getElementById("userEng");
var userMat = document.getElementById("userMat");
var kor = Number(userKor.value);
var eng = Number(userEng.value);
var mat = Number(userMat.value);
var errName = document.getElementById("errName");
var errKor = document.getElementById("errKor");
var errEng = document.getElementById("errEng");
var errMat = document.getElementById("errMat");
errName.style.display = "none";
errKor.style.display = "none";
errEng.style.display = "none";
errMat.style.display = "none";
if(userName.value=="")
{
errName.style.display = "inline";
return false;
}
if(userKor.value=="" || kor<0 || kor>100)
{
errKor.style.display = "inline";
return false;
}
if(userEng.value=="" || eng<0 || eng>100)
{
errEng.style.display = "inline";
return false;
}
if(userMat.value=="" || mat<0 || mat>100)
{
errMat.style.display = "inline";
return false;
}
//return false;
return true;
}
</script>
</head>
<body class="section">
<div>
<h1>์ฑ์ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅ ํ๋ก๊ทธ๋จ</h1>
<hr>
</div>
<div class="layout">
<form action="ScoreInsert.jsp" method="post" onsubmit="return scoreInsert()">
<table>
<tr>
<th>์ด๋ฆ(*)</th>
<td>
<input type="text" id="userName" name="userName">
<span id="errName" class="errMsg">์ด๋ฆ์ ์
๋ ฅํด์ฃผ์ธ์.</span>
</td>
</tr>
<tr>
<th>๊ตญ์ด์ ์</th>
<td>
<input type="text" id="userKor" name="userKor">
<span id="errKor" class="errMsg">๊ตญ์ด์ ์(0~100)</span>
</td>
</tr>
<tr>
<th>์์ด์ ์</th>
<td>
<input type="text" id="userEng" name="userEng">
<span id="errEng" class="errMsg">์์ด์ ์(0~100)</span>
</td>
</tr>
<tr>
<th>์ํ์ ์</th>
<td>
<input type="text" id="userMat" name="userMat">
<span id="errMat" class="errMsg">์ํ์ ์(0~100)</span>
</td>
</tr>
</table>
<div class="btn_box">
<button type="submit" id="resultBtn" name="resultBtn" class="btn">์ฑ์ ์ถ๊ฐ</button>
</div>
</form>
<div class="result_box">
<!-- <table>
<tr>
<th>๋ฒํธ</th><th>์ด๋ฆ</th><th>๊ตญ์ด์ ์</th><th>์์ด์ ์</th><th>์ํ์ ์</th><th>์ด์ </th><th>ํ๊ท </th>
<tr>
<tr>
<td>1</td><td>์ํ์ฑ</td><td>90</td><td>60</td><td>70</td><td>xxx</td><td>xx.x</td>
</tr>
</table> -->
<%=str %>
</div>
</div>
</body>
</html>
ใดใดScoreInsert.jsp
<%@page import="com.test.ScoreDTO"%>
<%@page import="com.test.ScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String userName = request.getParameter("userName");
String userKor = request.getParameter("userKor");
String userEng = request.getParameter("userEng");
String userMat = request.getParameter("userMat");
int kor = Integer.parseInt(userKor);
int eng = Integer.parseInt(userEng);
int mat = Integer.parseInt(userMat);
// ์
๋ ฅ
ScoreDAO dao = null;
try
{
dao = new ScoreDAO();
ScoreDTO dto = new ScoreDTO();
dto.setName(userName);
dto.setKor(kor);
dto.setEng(eng);
dto.setMat(mat);
dao.add(dto);
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
response.sendRedirect("ScoreList.jsp");
%>
F_WebApp12
[ํ์ ์ฑ์ ๊ด๋ฆฌ ๋ฐ ์ถ๋ ฅ ํ์ด์ง(ver.2)]

ใดใดWebApp12_scott.sql
SELECT USER
FROM DUAL;
--==>> SCOTT
--โ ๊ธฐ์กด ํ
์ด๋ธ ์ญ์
DROP TABLE TBL_MEMBER;
--==>>Table TBL_MEMBER์ด(๊ฐ) ์ญ์ ๋์์ต๋๋ค.
--โ ํ
์ด๋ธ ์์ฑ(TBL_MEMBER)
CREATE TABLE TBL_MEMBER
( SID NUMBER
, NAME VARCHAR2(30) NOT NULL
, TEL VARCHAR2(30)
, CONSTRAINT MEMBER_SID_PK PRIMARY KEY(SID)
);
--==>>Table TBL_NUMBER์ด(๊ฐ) ์์ฑ๋์์ต๋๋ค.
--โ ๊ธฐ์กด ์ํ์ค ์ ๊ฑฐ
DROP SEQUENCE MEMBERSEQ;
--==>> Sequence MEMBERSEQ์ด(๊ฐ) ์ญ์ ๋์์ต๋๋ค.
--โ ์ํ์ค ์์ฑ
CREATE SEQUENCE MEMBERSEQ
NOCACHE;
--==>>Sequence MEMBERSEQ์ด(๊ฐ) ์์ฑ๋์์ต๋๋ค.
--โ ์ํ ๋ฐ์ดํฐ ์
๋ ฅ(TBL_MEMBER)
INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '๋
ธ์ํ', '010-1111-1111');
INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '๋ฐ๊ฐ์', '010-2222-2222');
INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '์ฑ๋ค์ ', '010-3333-3333');
INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '๊น์ํ', '010-4444-4444');
INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '๊น๋ค์ฌ', '010-5555-5555');
--==>> 1 ํ ์ด(๊ฐ) ์ฝ์
๋์์ต๋๋ค. * 5
SELECT SID, NAME, TEL
FROM TBL_MEMBER
ORDER BY SID;
--> ํ ์ค ๊ตฌ์ฑ
SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID
;
--==>
/*
1 ๋
ธ์ํ 010-1111-1111
2 ๋ฐ๊ฐ์ 010-2222-2222
3 ์ฑ๋ค์ 010-3333-3333
4 ๊น์ํ 010-4444-4444
5 ๊น๋ค์ฌ 010-5555-5555
*/
--โ ์ธ์์ ํ์ธ
SELECT COUNT(*) AS COUNT
FROM TBL_MEMBER;
--> ํ ์ค ๊ตฌ์ฑ
SELECT COUNT(*) AS COUNT FROM TBL_MEMBER
;
--==>> 5
--โ ์ปค๋ฐ
COMMIT;
--โ ํ์ ์ ๋ณด ๊ฒ์(SID)
SELECT SID, NAME, TEL
FROM TBL_MEMBER
WHERE SID=1;
--> ํ ์ค ๊ตฌ์ฑ
SELECT SID, NAME, TEL FROM TBL_MEMBER WHERE SID=1
;
--==>> 1 ๋
ธ์ํ 010-1111-1111
--โ ์
๋ฐ์ดํธ
UPDATE TBL_MEMBER
SET NAME='๋
ธ์ํ', TEL='010-1100-1100'
WHERE SID=1;
--> ํ ์ค ๊ตฌ์ฑ
UPDATE TBL_MEMBER SET NAME='๋
ธ์ํ', TEL='010-1100-1100' WHERE SID=1
;
--==>> 1 ํ ์ด(๊ฐ) ์
๋ฐ์ดํธ๋์์ต๋๋ค.
--โ ๋กค๋ฐฑ
ROLLBACK;
--โ ํ์ ์ ๋ณด ์ญ์
DELETE
FROM TBL_MEMBER
WHERE SID=1;
--> ํ ์ค ๊ตฌ์ฑ
DELETE FROM TBL_MEMBER WHERE SID=1
;
--โ ๋กค๋ฐฑ
ROLLBACK;
--โ ๊ธฐ์กด ํ
์ด๋ธ ์ ๊ฑฐ
DROP TABLE TBL_SCORE;
--------------------------------------------------------------------------------
--โ ํ
์ด๋ธ ์์ฑ(TBL_MEMBERSCORE)
CREATE TABLE TBL_MEMBERSCORE
( SID NUMBER
, KOR NUMBER(3)
, ENG NUMBER(3)
, MAT NUMBER(3)
, CONSTRAINT MEMBERSCORE_SID_PK PRIMARY KEY(SID)
, CONSTRAINT MEMBERSCORE_KOR_CK CHECK(KOR BETWEEN 0 AND 100)
, CONSTRAINT MEMBERSCORE_ENG_CK CHECK(ENG BETWEEN 0 AND 100)
, CONSTRAINT MEMBERSCORE_MAT_CK CHECK(MAT BETWEEN 0 AND 100)
, CONSTRAINT MEMBERSCORE_SID_FK FOREIGN KEY(SID)
REFERENCES TBL_MEMBER(SID)
);
--==>> Table TBL_MEMBERSCORE์ด(๊ฐ) ์์ฑ๋์์ต๋๋ค.
--โ ์ํ ๋ฐ์ดํฐ ์
๋ ฅ
INSERT INTO TBL_MEMBERSCORE(SID, KOR, ENG, MAT) VALUES(1, 90, 80, 70);
INSERT INTO TBL_MEMBERSCORE(SID, KOR, ENG, MAT) VALUES(2, 80, 70, 60);
--==>> 1 ํ ์ด(๊ฐ) ์ฝ์
๋์์ต๋๋ค. *2
--โ ํ์ธ
SELECT SID, KOR, ENG, MAT
FROM TBL_MEMBERSCORE
ORDER BY SID;
--> ํ ์ค ๊ตฌ์ฑ
SELECT SID, KOR, ENG, MAT FROM TBL_MEMBERSCORE ORDER BY SID
;
--==>>
/*
1 90 80 70
2 80 70 60
*/
--โ ์ปค๋ฐ
COMMIT;
--โ ์
๋ ฅ๋ ์ฑ์ ๋ฐ์ดํฐ ๊ฐฏ์ ํ์ธ
SELECT COUNT(*) AS COUNT
FROM TBL_MEMBERSCORE;
--> ํ ์ค ๊ตฌ์ฑ
SELECT COUNT(*) AS COUNT FROM TBL_MEMBERSCORE
;
--==> 2
--โ ์ฑ์ ๋ฐ์ดํฐ ์์
UPDATE TBL_MEMBERSCORE
SET KOR=91, ENG=81, MAT=71
WHERE SID=1;
--> ํ ์ค ๊ตฌ์ฑ
UPDATE TBL_MEMBERSCORE SET KOR=91, ENG=81, MAT=71 WHERE SID=1
;
--==>> 1 ํ ์ด(๊ฐ) ์
๋ฐ์ดํธ๋์์ต๋๋ค.
--โ ํ์ธ
SELECT *
FROM TBL_MEMBERSCORE;
--==>>
/*
1 91 81 71
2 80 70 60
*/
--โ ์ปค๋ฐ
COMMIT;
--==>> ์ปค๋ฐ ์๋ฃ.
--โ ์ฑ์ ๋ฐ์ดํฐ ์ญ์
DELETE
FROM TBL_MEMBERSCORE
WHERE SID=1;
--> ํ ์ค ๊ตฌ์ฑ
DELETE FROM TBL_MEMBERSCORE WHERE SID=1
;
--==>> 1 ํ ์ด(๊ฐ) ์ญ์ ๋์์ต๋๋ค.
--โ ๋กค๋ฐฑ
ROLLBACK;
--==>> ๋กค๋ฐฑ ์๋ฃ.
--โ ์ ์ฒด ๋ฆฌ์คํธ ์กฐํ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์ฑ
SELECT M.SID, M.NAME, M.TEL
, S.KOR, S.ENG, S.MAT
FROM TBL_MEMBER M, TBL_MEMBERSCORE S
WHERE M.SID = S.SID;
--==>>
/*
1 ๋
ธ์ํ 010-1111-1111 91 81 71
2 ๋ฐ๊ฐ์ 010-2222-2222 80 70 60
*/
--โ ์ ์ฒด ๋ฆฌ์คํธ ์กฐํ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์ฑ -> ๊ฐ์ -> LEFT JOIN
SELECT M.SID, M.NAME, M.TEL
, S.KOR, S.ENG, S.MAT
FROM TBL_MEMBER M, TBL_MEMBERSCORE S
WHERE M.SID = S.SID(+);
--==>>
/*
1 ๋
ธ์ํ 010-1111-1111 91 81 71
2 ๋ฐ๊ฐ์ 010-2222-2222 80 70 60
3 ์ฑ๋ค์ 010-3333-3333 (NULL) (NULL) (NULL)
4 ๊น์ํ 010-4444-4444 (NULL) (NULL) (NULL)
5 ๊น๋ค์ฌ 010-5555-5555 (NULL) (NULL) (NULL)
*/
--โ ์ ์ฒด ๋ฆฌ์คํธ ์กฐํ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์ฑ -> ๊ฐ์ -> LEFT JOIN -> ๊ฐ์ -> NVL()
SELECT M.SID, M.NAME, M.TEL
, NVL(S.KOR, -1) AS KOR
, NVL(S.ENG, -1) AS ENG
, NVL(S.MAT, -1) AS MAT
FROM TBL_MEMBER M, TBL_MEMBERSCORE S
WHERE M.SID = S.SID(+);
--==>>
/*
1 ๋
ธ์ํ 010-1111-1111 91 81 71
2 ๋ฐ๊ฐ์ 010-2222-2222 80 70 60
3 ์ฑ๋ค์ 010-3333-3333 -1 -1 -1
4 ๊น์ํ 010-4444-4444 -1 -1 -1
5 ๊น๋ค์ฌ 010-5555-5555 -1 -1 -1
*/
--โ ์ ์ฒด ๋ฆฌ์คํธ ์กฐํ ์ ์ฉ ๋ทฐ ์์ฑ(VIEW_MEMBERSCORE)
CREATE OR REPLACE VIEW VIEW_MEMBERSCORE
AS
SELECT M.SID, M.NAME, M.TEL
, NVL(S.KOR, -1) AS KOR
, NVL(S.ENG, -1) AS ENG
, NVL(S.MAT, -1) AS MAT
FROM TBL_MEMBER M, TBL_MEMBERSCORE S
WHERE M.SID = S.SID(+);
--==>> View VIEW_MEMBERSCORE์ด(๊ฐ) ์์ฑ๋์์ต๋๋ค.
--โ ์์ฑํ ๋ทฐ(VIEW_MEMBERSCORE)๋ฅผ ํ์ฉํ ๋ฆฌ์คํธ ์กฐํ
SELECT SID, NAME, KOR, MAT
, (KOR+ENG+MAT) AS TOT
, (KOR+ENG+MAT)/3 AS AVG
, RANK() OVER(ORDER BY (KOR+ENG+MAT) DESC) AS RANK
FROM VIEW_MEMBERSCORE
ORDER BY SID;
--> ํ ์ค ๊ตฌ์ฑ
SELECT SID, NAME, KOR, ENG, MAT, (KOR+ENG+MAT) AS TOT, (KOR+ENG+MAT)/3 AS AVG, RANK() OVER(ORDER BY (KOR+ENG+MAT) DESC) AS RANK FROM VIEW_MEMBERSCORE ORDER BY SID
;
--==>>
/*
1 ๋
ธ์ํ 91 81 71 243 81 1
2 ๋ฐ๊ฐ์ 80 70 60 210 70 2
3 ์ฑ๋ค์ -1 -1 -1 -3 -1 3
4 ๊น์ํ -1 -1 -1 -3 -1 3
5 ๊น๋ค์ฌ -1 -1 -1 -3 -1 3
*/
--โ ์์ฑํ ๋ทฐ(VIEW_MEMBERSCORE)๋ฅผ ํ์ฉํ ๋ฒํธ ๊ฒ์
SELECT SID, NAME, KOR, ENG, MAT
FROM VIEW_MEMBERSCORE
WHERE SID=1;
--> ํ ์ค ๊ตฌ์ฑ
SELECT SID, NAME, KOR, ENG, MAT FROM VIEW_MEMBERSCORE WHERE SID=1
;
--==>> 1 ๋
ธ์ํ 91 81 71
--โ ์ฐธ์กฐ ๋ฐ์ดํฐ ๋ ์ฝ๋ ์ ํ์ธ
SELECT COUNT(*) AS COUNT
FROM TBL_MEMBERSCORE
WHERE SID=1;
--> ํ ์ค ๊ตฌ์ฑ
SELECT COUNT(*) AS COUNT FROM TBL_MEMBERSCORE WHERE SID=1
;
--==>> 1
-- 1์ด ๋์ฌ ๊ฒฝ์ฐ -> ์ฑ์ ์ฒ๋ฆฌ ๋จ
-- 0์ด ๋์ฌ ๊ฒฝ์ฐ -> ์ฑ์ ์ฒ๋ฆฌ ๋์ง ์์














ใด/WebApp12/src/com/test/
ใดใดMemberDAO.java
/* =================================================
MemberDAO.java
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์
์ฒ๋ฆฌ ์ ์ฉ ํด๋์ค
(TBL_MEMBER ํ
์ด๋ธ ์ ์ฉ DAO)
==================================================== */
package com.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.util.DBConn;
public class MemberDAO
{
// ์ฃผ์ ์์ฑ ๊ตฌ์ฑ
private Connection conn;
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ด๋น ๋ฉ์๋
public Connection connection() throws ClassNotFoundException, SQLException
{
conn = DBConn.getConnection();
return conn;
}
// ๋ฐ์ดํฐ ์
๋ ฅ ๋ด๋น ๋ฉ์๋
public int add(MemberDTO dto) throws SQLException
{
int result = 0;
String sql = "INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getTel());
result = pstmt.executeUpdate();
pstmt.close();
return result;
}
// ํ์ ๋ฆฌ์คํธ ์ ์ฒด ์ถ๋ ฅ ๋ด๋น ๋ฉ์๋
public ArrayList<MemberDTO> lists() throws SQLException
{
ArrayList<MemberDTO> result = new ArrayList<MemberDTO>();
String sql = "SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
MemberDTO dto = new MemberDTO();
dto.setSid(rs.getString("SID"));
dto.setName(rs.getString("NAME"));
dto.setTel(rs.getString("TEL"));
result.add(dto);
}
rs.close();
pstmt.close();
return result;
}
// ์ ์ฒด ํ์ ์ ํ์ธ ๋ด๋น ๋ฉ์๋
public int count() throws SQLException
{
int result = 0;
String sql = "SELECT COUNT(*) AS COUNT FROM TBL_MEMBER";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
result = rs.getInt("COUNT");
}
rs.close();
pstmt.close();
return result;
}
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ข
๋ฃ(ํด์ ) ๋ด๋น ๋ฉ์๋
public void close() throws SQLException
{
DBConn.close();
}
// ๋ฉ์๋ ์ถ๊ฐ
// ๋ฒํธ ๊ฒ์ ๋ด๋น ๋ฉ์๋(๋ฒํธ๋ฅผ ํตํด ํ์ ๋ฐ์ดํฐ ์กฐํ)
//-- ํ์ฌ... ๋ฒํธ(sid)๋ TBL_MEMBER ํ
์ด๋ธ์์ ์๋ณ์์ ์ญํ ์ ์ํํ ์ ์์ผ๋ฉฐ
// ์ด๋ก ์ธํด ๋ฒํธ๋ฅผ ํตํ ๊ฒ์ ๊ฒฐ๊ณผ๋ ํ ๋ช
์ ํ์์ผ ์ ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐํ ์๋ฃํ์ MemberDTO๋ก ๊ตฌ์ฑํ๋ค.
public MemberDTO searchMember(String sid) throws SQLException
// ์ฌ๋ฌ๊ฐ์ง๋ฅผ ๊ฒ์ํ ๊ฒฐ๊ณผ๋ -> ArrayList
// ํ๊ฐ์ง๋ง ์ป์ด๋ผ ๊ฒ์ด๋ฏ๋ก
{
MemberDTO result = new MemberDTO();
String sql = "SELECT SID, NAME, TEL FROM TBL_MEMBER WHERE SID=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(sid));
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
result.setSid(rs.getString("SID"));
result.setName(rs.getString("NAME"));
result.setTel(rs.getString("TEL"));
}
rs.close();
pstmt.close();
return result;
}
// ๋ฉ์๋ ์ถ๊ฐ
// ํ์ ๋ฐ์ดํฐ ์์ ๋ด๋น ๋ฉ์๋
public int modify(MemberDTO member) throws SQLException
{
int result = 0;
String sql = "UPDATE TBL_MEMBER SET NAME=?, TEL=? WHERE SID=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, member.getName());
pstmt.setString(2, member.getTel());
pstmt.setInt(3, Integer.parseInt(member.getSid()));
result = pstmt.executeUpdate();
pstmt.close();
return result;
}
// ๋ฉ์๋ ์ถ๊ฐ
// ํ์ ๋ฐ์ดํฐ ์ญ์ ๋ด๋น ๋ฉ์๋
public int remove(String sid) throws SQLException
{
int result = 0;
String sql = "DELETE FROM TBL_MEMBER WHERE SID=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(sid));
result = pstmt.executeUpdate();
pstmt.close();
return result;
}
// ๋ฉ์๋ ์ถ๊ฐ
// ์์ ํ
์ด๋ธ์ ์ฐธ์กฐ ๋ฐ์ดํฐ ๋ ์ฝ๋ ์ ํ์ธ
public int refCount(String sid) throws SQLException
{
int result = 0;
String sql = "SELECT COUNT(*) AS COUNT FROM TBL_MEMBERSCORE WHERE SID=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(sid));
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
result = rs.getInt("COUNT");
}
rs.close();
pstmt.close();
return result;
}
}
ใดใดMemberDTO.java
/* =================================================
MemberScoreDTO.java
- ๊ฐ์ฒด ์ ์ฉ(๋ฐ์ดํฐ ๋ณด๊ด ๋ฐ ์ ์ก) -> JAVA Bean
==================================================== */
package com.test;
public class MemberDTO
{
// ์ฃผ์ ์์ฑ(ํ๋กํผํฐ ๊ตฌ์ฑ)
private String sid, name, tel; //-- ๋ฒํธ, ์ด๋ฆ, ์ ํ๋ฒํธ
// getter / setter ๊ตฌ์ฑ
public String getSid()
{
return sid;
}
public void setSid(String sid)
{
this.sid = sid;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getTel()
{
return tel;
}
public void setTel(String tel)
{
this.tel = tel;
}
}
ใดใดMemberScoreDAO.java
/* =================================================
MemberScoreDAO.java
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์
์ฒ๋ฆฌ ์ ์ฉ ํด๋์ค
(TBL_MEMBERSCORE ํ
์ด๋ธ ์ ์ฉ DAO)
==================================================== */
package com.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.util.DBConn;
public class MemberScoreDAO
{
// ์ฃผ์ ์์ฑ ๊ตฌ์ฑ
private Connection conn;
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ด๋น ๋ฉ์๋
public Connection connection() throws ClassNotFoundException, SQLException
{
conn = DBConn.getConnection();
return conn;
}
// ๋ฐ์ดํฐ ์
๋ ฅ ๋ด๋น ๋ฉ์๋(์ฑ์ ๋ฐ์ดํฐ ์
๋ ฅ)
public int add(MemberScoreDTO dto) throws SQLException
{
int result = 0;
String sql = "INSERT INTO TBL_MEMBERSCORE(SID, KOR, ENG, MAT) VALUES(?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(dto.getSid()));
pstmt.setInt(2, dto.getKor());
pstmt.setInt(3, dto.getEng());
pstmt.setInt(4, dto.getMat());
result = pstmt.executeUpdate();
pstmt.close();
return result;
}
// ์ฑ์ ์ ์ฒด ๋ฆฌ์คํธ ์ถ๋ ฅ ๋ด๋น ๋ฉ์๋(์ฑ์ ๋ฐ์ดํฐ ์ ์ฒด ์ถ๋ ฅ)
public ArrayList<MemberScoreDTO> lists() throws SQLException
{
ArrayList<MemberScoreDTO> result = new ArrayList<MemberScoreDTO>();
String sql ="SELECT SID, NAME, KOR, ENG, MAT"
+ ", (KOR+ENG+MAT) AS TOT"
+ ", (KOR+ENG+MAT)/3 AS AVG"
+ ", RANK() OVER(ORDER BY (KOR+ENG+MAT) DESC) AS RANK"
+ " FROM VIEW_MEMBERSCORE ORDER BY SID";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
MemberScoreDTO score = new MemberScoreDTO();
score.setSid(rs.getString("SID"));
score.setName(rs.getString("NAME"));
score.setKor(rs.getInt("KOR"));
score.setEng(rs.getInt("ENG"));
score.setMat(rs.getInt("MAT"));
score.setTot(rs.getInt("TOT"));
score.setAvg(rs.getDouble("AVG"));
score.setRank(rs.getInt("RANK"));
result.add(score);
}
rs.close();
pstmt.close();
return result;
}
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ข
๋ฃ ํด์
public void close() throws SQLException
{
DBConn.close();
}
// ๋ฉ์๋ ์ถ๊ฐ
// ๋ฒํธ ๊ฒ์ ๋ด๋น ๋ฉ์๋
public MemberScoreDTO search(String sid) throws SQLException
{
MemberScoreDTO result = new MemberScoreDTO();
String sql = "SELECT SID, NAME, KOR, ENG, MAT FROM VIEW_MEMBERSCORE WHERE SID=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(sid));
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
result.setSid(rs.getString("SID"));
result.setName(rs.getString("NAME"));
result.setKor(rs.getInt("KOR"));
result.setEng(rs.getInt("ENG"));
result.setMat(rs.getInt("MAT"));
}
rs.close();
pstmt.close();
return result;
}
// ๋ฉ์๋ ์ถ๊ฐ
// ์ฑ์ ๋ฐ์ดํฐ ์์ ๋ด๋น ๋ฉ์๋
public int modify(MemberScoreDTO dto) throws SQLException
{
int result = 0;
String sql="UPDATE TBL_MEMBERSCORE SET KOR=?, ENG=?, MAT=? WHERE SID=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, dto.getKor());
pstmt.setInt(2, dto.getEng());
pstmt.setInt(3, dto.getMat());
pstmt.setInt(4, Integer.parseInt(dto.getSid()));
result = pstmt.executeUpdate();
pstmt.close();
return result;
}
}
ใดใดMemberScoreDTO.java
/* =================================================
MemberScoreDTO.java
- ๊ฐ์ฒด ์ ์ฉ(๋ฐ์ดํฐ ๋ณด๊ด ๋ฐ ์ ์ก) -> JAVA Bean
==================================================== */
package com.test;
public class MemberScoreDTO
{
// VIEW_MEMBERSCORE ์กฐํ ํญ๋ชฉ์ ๊ธฐ์ค์ผ๋ก
// ํ๋กํผํฐ(property) ๊ตฌ์ฑ
private String sid, name; //-- ๋ฒํธ, ์ด๋ฆ
private int kor, eng, mat; //-- ๊ตญ์ด์ ์, ์์ด์ ์, ์ํ์ ์
private int tot, rank; //-- ์ด์ , ์์ฐจ(๋ฑ์)
private double avg; //-- ํ๊ท
// getter / setter ๊ตฌ์ฑ
public String getSid()
{
return sid;
}
public void setSid(String sid)
{
this.sid = sid;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getKor()
{
return kor;
}
public void setKor(int kor)
{
this.kor = kor;
}
public int getEng()
{
return eng;
}
public void setEng(int eng)
{
this.eng = eng;
}
public int getMat()
{
return mat;
}
public void setMat(int mat)
{
this.mat = mat;
}
public int getTot()
{
return tot;
}
public void setTot(int tot)
{
this.tot = tot;
}
public int getRank()
{
return rank;
}
public void setRank(int rank)
{
this.rank = rank;
}
public double getAvg()
{
return avg;
}
public void setAvg(double avg)
{
this.avg = avg;
}
}
ใด/WebApp12/WebContent/
ใดใดMemberDelete.jsp
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// MemberDelete.jsp
// ์ด์ ํ์ด์ง(MemberSelect.jsp)๋ก ๋ถํฐ ๋์ด์จ ๋ฐ์ดํฐ ์์
// -> sid
String sid = request.getParameter("sid");
MemberDAO dao = new MemberDAO();
String strAddr = "";
try
{
dao.connection();
//dao.remove(sid);
// ์ฐธ์กฐ ๋ ์ฝ๋ ์ ํ์ธ
int checkCount = dao.refCount(sid);
//-- TBL_MEMBER ํ
์ด๋ธ์์ ์ ๊ฑฐํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ SID ๋ฅผ ์ฐธ์กฐํ๋ TBL_MEMBERSCORE ํ
์ด๋ธ ๋ด์ ๋ฐ์ดํฐ ๊ฐฏ์ ํ์ธ
// (ํ์ฌ๋ 0 or 1)
if(checkCount==0) //-- ์ ๊ฑฐ ๊ฐ๋ฅ
{
dao.remove(sid);
strAddr = "MemberSelect.jsp";
}else //-- ์ ๊ฑฐ ๋ถ๊ฐ
{
//dao.remove(sid);
strAddr = "Notice.jsp";
//-- TBL_MEMBERSCORE ํ
์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ TBL_MEMBER ํ
์ด๋ธ์ SID ๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ ๊ฒฝ์ฐ(์ฑ์ ์ด ์ด๋ฏธ ๋์จ ๊ฒฝ์ฐ)๋ก,
// ์ญ์ ๊ฐ ๋ถ๊ฐ๋ฅํ ์ํฉ
//-- ์ ๊ฑฐํ์ง ๋ชปํ๋ ์ฌ์ ๋ฅผ ์๋ดํ๋ ํ์ด์ง๋ก ์ด๋ + ๋ฆฌ์คํธ๋ก ๋์๊ฐ๊ธฐ ๊ธฐ๋ฅ ์ถ๊ฐ
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
// check~!!!
// ์ฌ์ฉ์๊ฐ ๋ค์ ์์ฒญํด์ผ ํ ํ์ด์ง ์๋ด
response.sendRedirect(strAddr);
// ๋๋จธ์ง ๋ณด์ฌ์ฃผ๋ ์ฝ๋ ๋ชจ๋ ์ ๊ฑฐ
%>
ใดใดMemberInsert.jsp
<%@page import="com.test.MemberDTO"%>
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// MemberInsert.jsp
//-- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ(TBL_MEMBER)์ ํ์ ๋ฐ์ดํฐ ์ถ๊ฐ ์ก์
์ฒ๋ฆฌ ์ํ
// ... ์ดํ ... ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ๋ฆฌ์คํธ ํ์ด์ง(MemberSelect.jsp)๋ฅผ ์์ฒญํ ์ ์๋๋ก ์๋ด
// ์ด์ ํ์ด์ง๋ก(MemberInserForm.jsp)๋ก ๋ถํฐ ๋์ด์จ ๋ฐ์ดํฐ ์์
//-> uName, uTel
request.setCharacterEncoding("UTF-8");
String uName = request.getParameter("uName");
String uTel = request.getParameter("uTel");
MemberDAO dao = new MemberDAO();
try
{
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
dao.connection();
// MemberDTO ๊ฐ์ฒด ์์ฑ ๋ฐ ์์ฑ ๊ตฌ์ฑ(->add() ๋ฉ์๋ ํธ์ถ์ ์ํด ํ์)
MemberDTO member = new MemberDTO();
member.setName(uName);
member.setTel(uTel);
// insert ์ฟผ๋ฆฌ๋ฌธ์ ์ํํ๋ dao์ add() ๋ฉ์๋ ํธ์ถ
dao.add(member);
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ข
๋ฃ
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
// check~!!!
// ํด๋ผ์ด์ธํธ๊ฐ MemberSelect.jsp ํ์ด์ง๋ฅผ ๋ค์ ์์ฒญํ ์ ์๋๋ก ์๋ด
response.sendRedirect("MemberInsertForm.jsp");
%>
ใดใดMemberInserForm.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberInsertForm.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/MemberScore.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript">
// ์
๋ ฅํ๊ธฐ ๋ฒํผ ํด๋ฆญ์ ํธ์ถ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์
function memberSubmit()
{
// ํ์ธ
//alert("ํจ์ ํธ์ถ~!!!");
var memberForm = document.getElementById("memberForm");
var uName = document.getElementById("uName");
var nameMsg = document.getElementById("nameMsg");
nameMsg.style.display = "none";
if(uName.value=="")
{
nameMsg.style.display="inline";
uName.focus();
return;
}
// form ์ ์ง์ ์ง์ ํ์ฌ submit ์ก์
์ํ
memberForm.submit();
}
function memberReset()
{
// ํ์ธ
//alert("ํจ์ ํธ์ถ~!!!");
var memberForm = document.getElementById("memberForm");
var uName = document.getElementById("uName");
var nameMsg = document.getElementById("nameMsg");
nameMsg.style.display = "none";
// form ์ ์ง์ ์ง์ ํ์ฌ reset ์ก์
์ํ
memberForm.reset();
uName.focus();
}
</script>
</head>
<body class="section">
<div>
<h1>ํ์ <span style="color: #FF8F8F;">๋ช
๋จ</span> ๊ด๋ฆฌ
๋ฐ <span style="color: #508D69;">์
๋ ฅ</span> ํ์ด์ง</h1>
</div>
<div class="layout">
<div class="btn_box">
<a href="MemberSelect.jsp"><button type="button">ํ์ ๋ช
๋จ ๊ด๋ฆฌ</button></a>
</div>
<div>
<!-- ํ์ ๋ฐ์ดํฐ ์
๋ ฅ ํผ ๊ตฌ์ฑ -->
<form action="MemberInsert.jsp" method="post" id="memberForm">
<table class="table">
<tr>
<th style="width: 150px;">์ด๋ฆ(*)</th>
<td>
<input type="text" id="uName" name="uName">
</td>
<td>
<span class="errMsg" id="nameMsg">์ด๋ฆ์ ์
๋ ฅํด์ผ ํฉ๋๋ค.</span>
</td>
</tr>
<tr>
<th>์ ํ๋ฒํธ</th>
<td>
<input type="text" id="uTel" name="uTel">
</td>
<td></td>
</tr>
</table>
<div class="btn_box">
<a href="javascript:memberSubmit();"><button type="button">์
๋ ฅํ๊ธฐ</button></a>
<a href="javascript:memberReset();"><button type="button">์ทจ์ํ๊ธฐ</button></a>
<a href="MemberSelect.jsp"><button type="button">๋ชฉ๋ก์ผ๋ก</button></a>
</div>
</form>
</div>
</div>
</body>
</html>
ใดใดMemberScoreInsertForm.jsp
<%@page import="com.test.MemberScoreDTO"%>
<%@page import="com.test.MemberScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// MemberScoreInsert.jsp
// ์ด์ ํ์ด์ง(MemberScoreInsertForm.jsp)๋ก ๋ถํฐ ๋์ด์จ ๋ฐ์ดํฐ ์์
// -> kor, eng, mat + sid
String sid = request.getParameter("sid");
String kor = request.getParameter("kor");
String eng = request.getParameter("eng");
String mat = request.getParameter("mat");
// MemberScoreDAO ์ธ์คํด์ค ์์ฑ
MemberScoreDAO dao = new MemberScoreDAO();
try
{
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
dao.connection();
// MemberScoreDTO ๊ฐ์ฒด ๊ตฌ์ฑ -> add() ๋ฉ์๋์ ๋งค๊ฐ๋ณ์
MemberScoreDTO score = new MemberScoreDTO();
score.setSid(sid);
score.setKor(Integer.parseInt(kor));
score.setEng(Integer.parseInt(eng));
score.setMat(Integer.parseInt(mat));
// dao ์ add() ๋ฉ์๋ ํธ์ถ -> ๋ฐ์ดํฐ ์
๋ ฅ(insert ์ฟผ๋ฆฌ๋ฌธ ์ํ)
// -> MemberScoreDTO ๋งค๊ฐ๋ณ์ ํ์
dao.add(score);
// ์์ ๋ฉ์๋๊ฐ ๋ฐํํ๋ ๊ฐ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ ๋ถ๊ธฐ ์ฝ๋ ์ฝ์
๊ฐ๋ฅ~!!!
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ข
๋ฃ
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
// ํด๋ผ์ด์ธํธ๊ฐ ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญ ํ ์ ์๋๋ก ์๋ด
response.sendRedirect("MemberScoreSelect.jsp");
// ์๋ ๋ณด์ฌ์ฃผ๋ ์ฝ๋ ๋ชจ๋ ์ ๊ฑฐ
%>
ใดใดMemberScoreSelect.jsp_ ํ์ ์ฑ์ ๊ด๋ฆฌ ๋ฐ ์ถ๋ ฅ ํ์ด์ง
<%@page import="com.test.MemberScoreDTO"%>
<%@page import="com.test.MemberScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
StringBuffer str = new StringBuffer();
MemberScoreDAO dao = new MemberScoreDAO();
try
{
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
dao.connection();
str.append("<table class='table'>");
str.append(" <tr>");
str.append(" <th class='numTh'>๋ฒํธ</th>");
str.append(" <th class='nameTh'>์ด๋ฆ</th>");
str.append(" <th>๊ตญ์ด์ ์</th><th>์์ด์ ์</th><th>์ํ์ ์</th>");
str.append(" <th>์ด์ </th><th>ํ๊ท </th><th>์์ฐจ</th>");
str.append(" <th>์ฑ์ ์ฒ๋ฆฌ</th>");
str.append(" </tr>");
for(MemberScoreDTO score: dao.lists())
{
str.append(" <tr>");
str.append(" <td>"+score.getSid()+"</td>");
str.append(" <td>"+score.getName()+"</td>");
str.append(" <td>"+score.getKor()+"</td>");
str.append(" <td>"+score.getEng()+"</td>");
str.append(" <td>"+score.getMat()+"</td>");
str.append(" <td>"+score.getTot()+"</td>");
str.append(" <td>"+String.format("%.2f",score.getAvg())+"</td>");
str.append(" <td>"+score.getRank()+"</td>");
// ์ฑ์ ์ฒ๋ฆฌ ํญ๋ชฉ(์
๋ ฅ, ์์ , ์ญ์ )
/*
str.append(" <td>");
str.append(" <button type='button' class='btn01'>์
๋ ฅ</button>");
str.append(" <button type='button' class='btn01'>์์ </button>");
str.append(" <button type='button' class='btn01'>์ญ์ </button>");
str.append(" </td>");
str.append(" </tr>");
*/
if(score.getKor()==-1 && score.getEng()==-1 && score.getMat()==-1)
{
str.append(" <td>");
str.append(" <a href='MemberScoreInsertForm.jsp?sid="+score.getSid()+"'><button type='button' class='btn01'>์
๋ ฅ</button></a>");
str.append(" <button type='button' class='btn01' disabled='disabled'>์์ </button>");
str.append(" <button type='button' class='btn01' disabled='disabled'>์ญ์ </button>");
str.append(" </td>");
str.append(" </tr>");
}
else
{
str.append(" <td>");
str.append(" <button type='button' class='btn01' disabled='disabled'>์
๋ ฅ</button>");
str.append(" <a href='MemberScoreUpdateForm.jsp?sid="+score.getSid()+"'><button type='button' class='btn01'>์์ </button></a>");
str.append(" <a href='javascript:memberScoreDelete("+score.getSid() +", \"" + score.getName()+"\")'><button type='button' class='btn01'>์ญ์ </button></a>");
str.append(" </td>");
str.append(" </tr>");
}
}
str.append("</table>");
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ข
๋ฃ
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberScoreSelect.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/MemberScore.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript">
function memberScoreDelete(sid, name)
{
// ํ์ธ
//alert("ํจ์ ์ฐ๊ฒฐ");
//alert("๋ฒํธ: "+ sid + ",์ด๋ฆ:" + name);
//โป name ์ ๋ฌธ์์ด๋ก ๋๊ธฐ๋ ๊ณผ์ ์์ ๋ฐ์ดํ ์ฃผ์ํ ๊ฒ~!!!
var res = confirm("๋ฒํธ: "+ sid + ",์ด๋ฆ:" + name + "\n์ด ํ์์ ์ ๋ณด๋ฅผ ์ ๋ง ์ญ์ ํ์๊ฒ ์ต๋๊น?");
if(res)
window.location.href="MemberScoreDelete.jsp?sid="+sid;
}
</script>
</head>
<body class="section">
<div>
<h1>ํ์ <span style="color: #62c8eb;">์ฑ์ </span> ๊ด๋ฆฌ ๋ฐ ์ถ๋ ฅ ํ์ด์ง</h1>
</div>
<div class="layout">
<div class="btn_box">
<a href="MemberSelect.jsp"><button type="button">ํ์ ๋ช
๋จ ๊ด๋ฆฌ</button></a>
</div>
</div>
<!-- ๋ฒํธ ์ด๋ฆ ๊ตญ์ด์ ์ ์์ด์ ์ ์ํ์ ์ ์ด์ ํ๊ท ์์ฐจ ์ฑ์ ์ฒ๋ฆฌ -->
<!-- ์
๋ ฅ ์์ ์ญ์ -->
<!-- <table>
<tr>
<th class='numTh'>๋ฒํธ</th>
<th class='nameTh'>์ด๋ฆ</th>
<th>๊ตญ์ด์ ์</th><th>์์ด์ ์</th><th>์ํ์ ์</th>
<th>์ด์ </th><th>ํ๊ท </th><th>์์ฐจ</th>
<th>์ฑ์ ์ฒ๋ฆฌ</th>
</tr>
<tr>
<td>"+score.getSid()+"</td>
<td>"+score.getName()+"</td>
<td>"+score.getKor()+"</td>
<td>"+score.getEng()+"</td>
<td>"+score.getMat()+"</td>
<td>"+score.getTot()+"</td>
<td>"+score.getAvg()+"</td>
<td>"+score.getRank()+"</td>
<td>
<button type='button' class='btn01'>์
๋ ฅ</button>
<button type='button' class='btn01'>์์ </button>
<button type='button' class='btn01'>์ญ์ </button>
</td>
</tr>
</table> -->
<%=str.toString() %>
</body>
</html>
ใดใดMemberScoreUpdate.jsp
<%@page import="com.test.MemberScoreDAO"%>
<%@page import="com.test.MemberScoreDTO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// MemberScoreUpdate.jsp
String sid = request.getParameter("sid");
String korStr = request.getParameter("kor");
String engStr = request.getParameter("eng");
String matStr = request.getParameter("mat");
int kor = Integer.parseInt(korStr);
int eng = Integer.parseInt(korStr);
int mat = Integer.parseInt(korStr);
MemberScoreDAO dao = new MemberScoreDAO();
try
{
dao.connection();
MemberScoreDTO member = new MemberScoreDTO();
member.setSid(sid);
member.setKor(kor);
member.setEng(eng);
member.setMat(mat);
dao.modify(member);
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
response.sendRedirect("MemberScoreSelect.jsp");
%>
ใดใดMemberScoreUpdateForm.jsp
<%@page import="com.test.MemberScoreDTO"%>
<%@page import="com.test.MemberScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// ์ด์ ํ์ด์ง๋ก(MemberScoreSelect.jsp)๋ถํฐ ๋์ด์จ ๋ฐ์ดํฐ ์์
// -> sid
String sid = request.getParameter("sid");
String name = "";
int kor = 0;
int eng = 0;
int mat = 0;
// name ์ ์กฐํํ๊ธฐ ์ํด dao ์ธ์คํด์ค ์์ฑ
MemberScoreDAO dao = new MemberScoreDAO();
try
{
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
dao.connection();
// ์์ ํ sid ๋ฅผ ํ์ฉํ์ฌ name ๋ฐ ๊ฐ ๊ณผ๋ชฉ์ ์ ์ ์ป์ด๋ด๊ธฐ
MemberScoreDTO score = dao.search(sid);
name = score.getName();
kor = score.getKor();
eng = score.getEng();
mat = score.getMat();
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberScoreUpdateForm.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/MemberScore.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript">
// ์
๋ ฅํ๊ธฐ ๋ฒํผ ํด๋ฆญ์ ํธ์ถ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์
function memberScoreSubmit()
{
// ํ์ธ
//alert("ํจ์ ํธ์ถ~!!!");
var memberScoreForm = document.getElementById("memberScoreForm");
var kor = document.getElementById("kor");
var eng = document.getElementById("eng");
var mat = document.getElementById("mat");
var korMsg = document.getElementById("korMsg");
var engMsg = document.getElementById("engMsg");
var matMsg = document.getElementById("matMsg");
korMsg.style.display = "none";
engMsg.style.display = "none";
matMsg.style.display = "none";
if(kor.value=="" || isNaN(kor.value) || Number(kor.value)<0 || Number(kor.value)>100)
{
korMsg.style.display ="inline";
kor.focus();
return;
}
if(eng.value=="" || isNaN(eng.value) || Number(eng.value)<0 || Number(eng.value)>100)
{
engMsg.style.display ="inline";
eng.focus();
return;
}
if(mat.value=="" || isNaN(mat.value) || Number(mat.value)<0 || Number(mat.value)>100)
{
matMsg.style.display ="inline";
mat.focus();
return;
}
memberScoreForm.submit();
}// end memberScoreForm.submit()
function memberScoreReset()
{
// ํ์ธ
//alert("ํจ์ ํธ์ถ~!!!");
var memberScoreForm = document.getElementById("memberScoreForm");
var kor = document.getElementById("kor");
var korMsg = document.getElementById("korMsg");
var engMsg = document.getElementById("engMsg");
var matMsg = document.getElementById("matMsg");
korMsg.style.display="none";
engMsg.style.display="none";
matMsg.style.display="none";
memberScoreForm.reset();
kor.focus();
}
</script>
</head>
<body class="section">
<div>
<h1>ํ์ <span style="color: #62c8eb;">์ฑ์ </span> ๊ด๋ฆฌ
๋ฐ <span style="color: #508D69;">์์ </span> ํ์ด์ง</h1>
</div>
<div class="layout">
<div class="btn_box">
<a href="MemberScoreSelect.jsp"><button type="button">ํ์ ์ฑ์ ๊ด๋ฆฌ</button></a>
</div>
<div>
<!-- ์ฑ์ ๋ฐ์ดํฐ ์
๋ ฅ ํผ ๊ตฌ์ฑ -->
<form action="MemberScoreUpdate.jsp?sid=<%=sid %>" method="post" id="memberScoreForm">
<table class="table">
<tr>
<th>๋ฒํธ</th>
<td><%=sid %></td> <!-- 1 -->
<td></td>
</tr>
<tr>
<th style="width: 150px;">์ด๋ฆ(*)</th>
<td>
<%=name %> <!-- ๋ฌธ์ ํ -->
</td>
<td></td>
</tr>
<tr>
<th>๊ตญ์ด์ ์</th>
<td>
<input type="text" id="kor" name="kor" value="<%=kor%>" style="text-align:center;">
</td>
<td>
<span class="errMsap" id="korMsg" style="display:none;color: #FF8F8F;">0~100 ์ฌ์ด์ ๊ตญ์ด์ ์ ์
๋ ฅ</span>
</td>
</tr>
<tr>
<th>์์ด์ ์</th>
<td>
<input type="text" id="eng" name="eng" value="<%=eng%>" style="text-align:center;">
</td>
<td>
<span class="errMsap" id="engMsg" style="display:none;color: #FF8F8F;">0~100 ์ฌ์ด์ ์์ด์ ์ ์
๋ ฅ</span>
</td>
</tr>
<tr>
<th>์ํ์ ์</th>
<td>
<input type="text" id="mat" name="mat" value="<%=mat%>" style="text-align:center;">
</td>
<td>
<span class="errMsap" id="matMsg" style="display:none;color: #FF8F8F;">0~100 ์ฌ์ด์ ์ํ์ ์ ์
๋ ฅ</span>
</td>
</tr>
</table>
<div class="btn_box">
<a href="javascript:memberScoreSubmit();"><button type="button">์์ ํ๊ธฐ</button></a>
<a href="javascript:memberScoreReset();"><button type="button">์ทจ์ํ๊ธฐ</button></a>
<a href="MemberScoreSelect.jsp"><button type="button">๋ชฉ๋ก์ผ๋ก</button></a>
</div>
</form>
</div>
</div>
</body>
</html>
ใดใดMemberSelect.jsp_ํ์ ๋ช ๋จ ๊ด๋ฆฌ ๋ฐ ์ถ๋ ฅ ํ์ด์ง
str.append(" <a href='javascript:memberDelete("+member.getSid()+", \""+member.getName()+"\");'>");
// memberDelete(1, '๋
ธ์ํ');
โป ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ดํ์ ์ข
๋ฅ
โ "" โก'' โข\\"\\"
์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํ๊ฐ ๋ ๋ฒ ์ค์ฒฉ๋์ด ์ฌ์ฉํ๊ฒ ๋๋ฉด โ ๊ณผ โก๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
ํ์ง๋ง, ๋ฐ์ดํ๊ฐ ์ธ ๋ฒ ์ค์ฒฉ๋์ด ์ฌ์ฉ๋ ๊ฒฝ์ฐ โข escape๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
<%@page import="com.test.MemberDTO"%>
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
StringBuffer str = new StringBuffer();
MemberDAO dao = new MemberDAO();
try
{
dao.connection();
str.append("<table class='table'>");
str.append(" <tr>");
str.append(" <th style='width: 50px'>๋ฒํธ</th>");
str.append(" <th style='width: 50px'>์ด๋ฆ</th>");
str.append(" <th style='width: 50px'>์ ํ๋ฒํธ</th>");
str.append(" <th style='width: 50px'>๊ด๋ฆฌ</th>");
str.append(" </tr>");
for(MemberDTO member:dao.lists())
{
str.append(" <tr>");
str.append(" <td>"+ member.getSid() +"</td>");
str.append(" <td>"+ member.getName() +"</td>");
str.append(" <td>"+ member.getTel() +"</td>");
str.append(" <td>");
str.append(" <a href='MemberUpdateForm.jsp?sid="+ member.getSid() +"'>");
str.append(" <button type='button' class='btn01'>์์ </button>");
str.append(" </a>");
/* str.append(" <a href='javascript:memberDelete("+member.getSid()+","+member.getName()+");'>"); */
str.append(" <a href='javascript:memberDelete("+member.getSid()+", \""+member.getName()+"\");'>");
// memberDelete(1, '๋
ธ์ํ');
// โป ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ดํ์ ์ข
๋ฅ
// โ "" โก'' โข\"\"
// ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํ๊ฐ ๋ ๋ฒ ์ค์ฒฉ๋์ด ์ฌ์ฉํ๊ฒ ๋๋ฉด โ ๊ณผ โก๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
// ํ์ง๋ง, ๋ฐ์ดํ๊ฐ ์ธ ๋ฒ ์ค์ฒฉ๋์ด ์ฌ์ฉ๋ ๊ฒฝ์ฐ โข escape๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
str.append(" <button type='button' class='btn01'>์ญ์ </button>");
str.append(" </a>");
str.append(" </td>");
str.append(" </tr>");
}
str.append("</table>");
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
//DBConn.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberSelect.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/MemberScore.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript">
function memberDelete(sid, name)
{
// ํ์ธ
//alert("ํจ์ ํธ์ถ~!!!");
// ํ์ธ
//alert("๋ฒํธ:"+ sid +",์ด๋ฆ:"+name);
var res = confirm("๋ฒํธ:"+ sid +",์ด๋ฆ:"+name+"\n์ด ํ์์ ์ ๋ณด๋ฅผ ์ ๋ง ์ญ์ ํ์๊ฒ ์ต๋๊น?");
// ํ์ธ
//alert(res);
//-- confirm() ํจ์๋ฅผ ํตํด ํธ์ถ๋๋ ์ฐฝ์ ์ฌ์ฉ์์ ์์ฌํํ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ true(ํ์ธ)๋๋ false(์ทจ์)๋ฅผ ๋ฐํํ๊ฒ ๋๋ค.
if(res)
window.location.href="MemberDelete.jsp?sid="+sid;
}
</script>
</head>
<body class="section">
<div>
<h1>ํ์ <span style="color: #FF8F8F;">๋ช
๋จ</span> ๊ด๋ฆฌ ๋ฐ ์ถ๋ ฅ ํ์ด์ง</h1>
</div>
<div class="layout">
<div class="btn_box">
<a href="MemberScoreSelect.jsp"><button type="button">ํ์ ์ฑ์ ๊ด๋ฆฌ</button></a>
<a href="MemberInsertForm.jsp"><button type="button">์ ๊ท ํ์ ๋ฑ๋ก</button></a>
</div>
<!-- ๋ฆฌ์คํธ ์ถ๋ ฅ -->
<!-- <table class="table">
<tr>
<th style="width: 50px">๋ฒํธ</th>
<th style="width: 50px">์ด๋ฆ</th>
<th style="width: 50px">์ ํ๋ฒํธ</th>
<th style="width: 50px">๊ด๋ฆฌ</th>
</tr>
<tr>
<td>1</td>
<td>ํฌ๋์ด</td>
<td>010-1111-1111</td>
<td>
<a><button type="button" class="btn01">์์ </button></a>
<a><button type="button" class="btn01">์ญ์ </button></a>
</td>
</tr>
<tr>
<td>2</td>
<td>๋์ฐ๋</td>
<td>010-2222-2222</td>
<td>
<a><button type="button" class="btn01">์์ </button></a>
<a><button type="button" class="btn01">์ญ์ </button></a>
</td>
</tr>
<tr>
<td>3</td>
<td>๋ง์ด์ฝ</td>
<td>010-3333-3333</td>
<td>
<a><button type="button" class="btn01">์์ </button></a>
<a><button type="button" class="btn01">์ญ์ </button></a>
</td>
</tr>
</table> -->
<%=str.toString() %>
</div>
</body>
</html>
ใดใดMemberUpdate.jsp
<%@page import="com.test.MemberDAO"%>
<%@page import="com.test.MemberDTO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
//MemberUpdate.jsp
// ์ด์ ํ์ด์ง๋ก(MemberUpdateForm.jsp)๋ก ๋ถํฐ ๋์ด์จ ๋ฐ์ดํฐ ์์
//-> sid, uName, uTel
request.setCharacterEncoding("UTF-8");
String sid = request.getParameter("sid");
String name = request.getParameter("uName");
String tel = request.getParameter("uTel");
MemberDAO dao = new MemberDAO();
try
{
dao.connection();
MemberDTO member = new MemberDTO();
member.setSid(sid);
member.setName(name);
member.setTel(tel);
dao.modify(member);
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
// ํด๋ผ์ด์ธํธ์ MemberSelect.jsp ํ์ด์ง๋ฅผ ๋ค์ ์์ฒญํ ์ ์๋๋ก ์๋ด~!!!
response.sendRedirect("MemberSelect.jsp");
// ์ดํ ๋ณด์ฌ์ง๋ ํ์ด์ง ๊ตฌ์ฑ ๋ชจ๋ ์ญ์
%>
ใดใดMemberUpdateForm.jsp
- ๋ฐฉ๋ฒ โ : type="hidden" ์ฌ์ฉ
<input type="hidden" name="sid" value="<%=sid%>">
- ๋ฐฉ๋ฒ โก: disabled ์ฌ์ฉ
<input type="text" name="sid" value="<%=sid%>" disabled="disabled">
- ๋ฐฉ๋ฒ โข: get ๋ฐฉ์์ผ๋ก ์ฃผ์์์ sid ๋๊น
<form action="MemberUpdate.jsp?sid=<%=sid %>" method="post" id="memberForm">
<%@page import="com.test.MemberDTO"%>
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// ์ด์ ํ์ด์ง(MemberSelect.jsp)๋ก๋ถํฐ ๋์ด์จ ๋ฐ์ดํฐ ์์
// -> sid
// ์์ ํ sid ๋ฅผ ๊ฐ์ง๊ณ ํ์ ๋ฐ์ดํฐ ์กฐํ
// ์กฐํํด์ ์ป์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ํผ์ ๊ตฌ์ฑ
String sid = request.getParameter("sid");
String name = "";
String tel = "";
MemberDAO dao = new MemberDAO();
try
{
// ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฐ๊ฒฐ
dao.connection();
MemberDTO member = dao.searchMember(sid);
name = member.getName();
tel = member.getTel();
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberUdpateForm.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/MemberScore.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript">
// ์
๋ ฅํ๊ธฐ ๋ฒํผ ํด๋ฆญ์ ํธ์ถ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์
function memberSubmit()
{
// ํ์ธ
//alert("ํจ์ ํธ์ถ~!!!");
var memberForm = document.getElementById("memberForm");
var uName = document.getElementById("uName");
var nameMsg = document.getElementById("nameMsg");
nameMsg.style.display = "none";
if(uName.value=="")
{
nameMsg.style.display="inline";
uName.focus();
return;
}
// form ์ ์ง์ ์ง์ ํ์ฌ submit ์ก์
์ํ
memberForm.submit();
}
function memberReset()
{
// ํ์ธ
//alert("ํจ์ ํธ์ถ~!!!");
var memberForm = document.getElementById("memberForm");
var uName = document.getElementById("uName");
var nameMsg = document.getElementById("nameMsg");
nameMsg.style.display = "none";
// form ์ ์ง์ ์ง์ ํ์ฌ reset ์ก์
์ํ
memberForm.reset();
uName.focus();
}
</script>
</head>
<body class="section">
<div>
<h1>ํ์ <span style="color: #FF8F8F;">๋ช
๋จ</span> ๊ด๋ฆฌ
๋ฐ <span style="color: #61A3BA;">์์ </span> ํ์ด์ง</h1>
</div>
<div class="layout">
<div class="btn_box">
<a href="MemberSelect.jsp"><button type="button">ํ์ ๋ช
๋จ ๊ด๋ฆฌ</button></a>
</div>
<div>
<!-- ํ์ ๋ฐ์ดํฐ ์์ ํผ ๊ตฌ์ฑ -->
<!-- <form action="MemberUpdate.jsp" method="post" id="memberForm"> -->
<!-- ๋ฐฉ๋ฒ โข: get ๋ฐฉ์์ผ๋ก ์ฃผ์์์ sid ๋๊น -->
<form action="MemberUpdate.jsp?sid=<%=sid %>" method="post" id="memberForm">
<table class="table">
<tr>
<th>๋ฒํธ</th>
<!-- <td>1</td> -->
<td>
<%=sid %>
<!-- **๋ฒํธ(sid)๋ฅผ submit ์ ๋๊ธฐ๋ ๋ฐฉ๋ฒ 3๊ฐ์ง** -->
<!-- ๋ฐฉ๋ฒ โ : type="hidden" ์ฌ์ฉ -->
<input type="hidden" name="sid" value="<%=sid%>">
<!-- ๋ฐฉ๋ฒ โก: disabled ์ฌ์ฉ -->
<%-- <input type="text" name="sid" value="<%=sid%>" disabled="disabled"> --%>
</td>
<td></td>
</tr>
<tr>
<th style="width: 150px;">์ด๋ฆ(*)</th>
<td>
<input type="text" id="uName" name="uName" value="<%=name %>">
</td>
<td>
<span class="errMsg" id="nameMsg">์ด๋ฆ์ ์
๋ ฅํด์ผ ํฉ๋๋ค.</span>
</td>
</tr>
<tr>
<th>์ ํ๋ฒํธ</th>
<td>
<input type="text" id="uTel" name="uTel" value="<%=tel %>">
</td>
<td></td>
</tr>
</table>
<div class="btn_box">
<a href="javascript:memberSubmit();"><button type="button">์์ ํ๊ธฐ</button></a>
<a href="javascript:memberReset();"><button type="button">์ทจ์ํ๊ธฐ</button></a>
<a href="MemberSelect.jsp"><button type="button">๋ชฉ๋ก์ผ๋ก</button></a>
</div>
</form>
</div>
</div>
</body>
</html>
ใดใดNotice.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Notice.jsp</title>
<!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body class="section">
<div class="layout">
<div class="result_box">
ํด๋น ํ์์ ์ ๋ณด๋ฅผ ์ญ์ ํ๊ธฐ ์ํด์๋ <br>
๋ฑ๋ก๋ ์ฑ์ ์ ๋ณด๋ฅผ ๋จผ์ ์ญ์ ํด์ผ ํฉ๋๋ค.<br><br>
<a href="MemberSelect.jsp" style="color:blue;">โถ๋ฆฌ์คํธ๋ก ๋์๊ฐ๊ธฐ</a>
</div>
</div>
</body>
</html>