본문 바로가기
JSP

230125_DB

by 경 훈 2023. 1. 25.

수정 작업 순서 요령

 

1. 출력에서 수정을 클릭하면 지정한곳(.jsp)를 ...jsp 이름을 적재 이동

2. 이동한 jsp 파일에서 넘겨받은 이름과 동일한 자료를 디비에서 찾기

3. 동일한 이름을 찾았으면 그 이름에 해당되는 모든 자료를 화면에 출력..입력

    폼 형식으로 자료를 보이게 하고 입력(수정자료)하여

4. 폼에서 입력한 (수정완료) 자료들을 또 다른 jsp 로 넘김

5. 넘겨받은 jsp 파일은 넘겨받은 자료들을 객체화 시켜 DAO의 수정기능 메소드 전달

6. DAO의 수정기능의 메소드는 업데이트를 실행하여 수정이 완료

 

검증(Verification) : 유효성검사 : 사용자가 올바른 데이터만 입력 받고자 할때

클라이언트 : 사용자가 자료입력시 클라이언트 폼에서 검증

사용법

1. 폼의 이름을 반드시 입력한다.

2. 검증 범위의 값 설정과 입력한 자료를 비교시 .test() 함수를 사용..

    존재하면 참... 아니면 거짓...

3. 자바스크립트에서 사용

4. var 변수 =/^[시작값 - 마지막값]$/;

ex) 아이디는 영어 소,대,숫자 var cid=/^[a-zA-Z0-9]$/;

ex) 이름 입력시 한글로만 입력조건

var vname =/^[가-힣]*$/;

길이제한이 들어가면 /^[가-힣]{3,5}$/; 

 

package day8_DB1;

public class DTO {
	String name;
	int kor,eng,mat,tot;
	public DTO() {}
	public DTO(String name, int kor, int eng, int mat, int tot) {
		super();
		this.name = name;
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
		this.tot = tot;
	}
	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;
	}
}

 

<%@ 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>
</head>
<body>
	<br><br><br>
	<div align="center">
		<a href = "input.jsp"><button>성적입력</button></a>
		<a href = "out.jsp"><button>성적출력</button></a>
	</div>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
	th,td {
		text-align: center;
	}
</style>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="save.jsp" method="post">
		<table border="1" align="center">
			<caption>회원성적입력</caption>
			<tr>
				<th>이름</th>
				<td><input type="text" name="name"></td>
			</tr>
			<tr>
				<th>국어</th>
				<td><input type="text" name="kor"></td>
			</tr>
			<tr>
				<th>영어</th>
				<td><input type="text" name="eng"></td>
			</tr>
			<tr>
				<th>수학</th>
				<td><input type="text" name="mat"></td>
			</tr>
			<tr>
				<td colspan="3" align="center">
					<input type="submit" value="전송">
					<input type="reset" value="초기화">
					<a href = "menu.jsp">
					<input type="button" value="메뉴"></a>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

 

<%@page import="day8_DB1.DAO"%>
<%@page import="day8_DB1.DTO"%>
<%@ 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>
</head>
<body>
	<%!
	String name;
	int kor,eng,mat,tot;
	%>
	<%
	request.setCharacterEncoding("utf-8");
	name = request.getParameter("name");
	kor = Integer.parseInt(request.getParameter("kor"));
	eng = Integer.parseInt(request.getParameter("eng"));
	mat = Integer.parseInt(request.getParameter("mat"));
	tot = kor+eng+mat;
	DTO dto = new DTO(name,kor,eng,mat,tot);
	DAO dao = new DAO();
	dao.insert(dto);
	response.sendRedirect("menu.jsp");
	%>
</body>
</html>

 

<%@page import="java.sql.ResultSet"%>
<%@page import="day8_DB1.DAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
	th,td {
		text-align: center;
	}
	button {
		border: none;
		background-color: #ffffff;
		cursor: pointer;
	}
</style>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%!
	String name;
	int kor,eng,mat,tot;
	%>
	<%
	DAO dao = new DAO();
	ResultSet rs = dao.out();
	%>
	<table border="1" align="center" width="500px">
		<tr>
			<th>이름</th><th>국어</th><th>영어</th>
			<th>수학</th><th>총점</th><th>비고</th>
		</tr>
	<%
	while(rs.next()) {
		name = rs.getString(1);
		kor = rs.getInt(2);
		eng = rs.getInt(3);
		mat = rs.getInt(4);
		tot = rs.getInt(5);
	%>
		<tr>
			<td><%=name%></td><td><%=kor%></td><td><%=eng%></td>
			<td><%=mat%></td><td><%=tot%></td>
			<td>
				<a href="delete.jsp?name=<%=name%>"><button>&#10060;</button></a>
				<a href="modify1.jsp?name=<%=name%>"><button>&#9989;</button></a>
			</td>
		</tr>
	<%
	}
	%>
	</table>
	<div align="center">
		<a href ="menu.jsp"><input type="button" value="메뉴"></a>
	</div>
</body>
</html>

 

<%@page import="day8_DB1.DAO"%>
<%@ 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>
</head>
<body>
	<%!
	String dname;
	%>
	<%
	request.setCharacterEncoding("utf-8");
	dname = request.getParameter("name");
	DAO dao = new DAO();
	dao.delete(dname);
	response.sendRedirect("menu.jsp");
	%>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="dbcon.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%!
	String mname;
	int kor,eng,mat,tot;
	%>
	<%
	request.setCharacterEncoding("utf-8");
	mname = request.getParameter("name");
	String sql = "select * from DB01251 where name=?";
	psmt = con.prepareStatement(sql);
	psmt.setString(1, mname);
	rs = psmt.executeQuery(); //이름이 동일한 1개의
	if(rs.next()) {
		mname = rs.getString(1);
		kor = rs.getInt(2);
		eng = rs.getInt(3);
		mat = rs.getInt(4);
		tot = rs.getInt(5);
	}
	%>
	<form action="modify2.jsp" method="post">
		<table border="1" align="center">
			<tr>
				<th>이름</th>
				<td><input type="text" name="name" value="<%=mname%>" readonly></td>
			</tr>		
			<tr>
				<th>국어</th>
				<td><input type="text" name="kor" value="<%=kor%>"></td>
			</tr>	
			<tr>
				<th>영어</th>
				<td><input type="text" name="eng" value="<%=eng%>"></td>
			</tr>	
			<tr>
				<th>수학</th>
				<td><input type="text" name="mat" value="<%=mat%>"></td>
			</tr>
			<tr>
				<td colspan="3" align="center">
					<input type="submit" value="수정완료">
					<input type="reset" value="초기화">
					<a href="menu.jsp"><input type="button" value="메뉴"></a>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

 

<%@page import="day8_DB1.DAO"%>
<%@page import="day8_DB1.DTO"%>
<%@ 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>
</head>
<body>
	<%!
	String name;
	int kor,eng,mat,tot;
	%>
	<%
	request.setCharacterEncoding("utf-8");
	name = request.getParameter("name");
	kor = Integer.parseInt(request.getParameter("kor"));
	eng = Integer.parseInt(request.getParameter("eng"));
	mat = Integer.parseInt(request.getParameter("mat"));
	tot = kor+eng+mat;
	DTO dto = new DTO(name,kor,eng,mat,tot);
	DAO dao = new DAO();
	dao.modify(dto);
	response.sendRedirect("menu.jsp");
	%>
</body>
</html>

 

package day8_DB1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DAO {
	Connection con;
	PreparedStatement psmt;
	ResultSet rs;
	String driver = "oracle.jdbc.driver.OracleDriver";
	String url = "jdbc:oracle:thin:@localhost:1521:xe";
	public DAO() throws ClassNotFoundException {
		Class.forName(driver);
		try {
			con = DriverManager.getConnection(url, "ezen", "12345");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public void insert(DTO dto) {
		String name = dto.getName();
		int kor = dto.getKor();
		int eng = dto.getEng();
		int mat = dto.getMat();
		int tot = dto.getTot();
		String sql = "insert into DB01251 values (?,?,?,?,?)";
		try {
			psmt = con.prepareStatement(sql);
			psmt.setString(1,name);
			psmt.setInt(2, kor);
			psmt.setInt(3, eng);
			psmt.setInt(4, mat);
			psmt.setInt(5, tot);
			psmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	//DB자료를 화면에 표시
	public ResultSet out() {
		String sql = "select * from DB01251";
		try {
			psmt = con.prepareStatement(sql);
			rs = psmt.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rs;
	}
	public void delete(String dname) {
		String sql = "delete from DB01251 where name=?";
		try {
			psmt = con.prepareStatement(sql);
			psmt.setString(1, dname);
			psmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public void modify(DTO dto) {
		String mname= dto.getName();
		int mkor = dto.getKor();
		int meng = dto.getEng();
		int mmat = dto.getMat();
		int mtot = dto.getTot();
		String sql = "update DB01251 set kor=?,eng=?,mat=?,tot=? where name=?";
		try {
			psmt = con.prepareStatement(sql);
			psmt.setInt(1, mkor);
			psmt.setInt(2, meng);
			psmt.setInt(3, mmat);
			psmt.setInt(4, mtot);
			psmt.setString(5, mname);
			psmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
	th,td {
		text-align: center;
	}
</style>
<script type="text/javascript">
function check(){//자바스크립트 영역
	//이름 검증
	var f = document.form1;
	var vname = /^[가-힣]{3,5}$/; //이름은 한글로만 검증설정범위
	var cname = f.name.value; //사용자가 입력한 값을 가져와서 비교
	if(cname=="") {
		alert("이름은 공백이면 안됩니다!");//알림창이 뜨면 확인을 누르면
		f.name.select();
		return false;
	}
	if(!vname.test(cname)) {
		alert("이름은 한글로만 입력.. 길이3-5자이내");
		f.name.select();
		return false;
	}
	//국어점수
	var vkor = /^[\d]{1,3}$/; //국어점수 검증범위 숫자면서 3자리
	var ckor = f.kor.value; //입력한 국어 점수 값
	if(ckor=="") {
		alert("국어점수는 공백이면 안됩니다!");
		f.kor.select();
		return false;
	}
	if(ckor>=0 && ckor<=100) {
	}
	else {
		alert("국어점수 0-100 사이에서만 입력");
		f.kor.select();
		return false;
	}
	if(!vkor.test(ckor)) {
		alert("국어점수는 숫자로만 입력!!");
		f.kor.select();
		return false;
	}
	//전화번호 체크
	var vphone = /^[\d]{3}-[\d]{4}-[\d]{4}$/;
	var cphone = f.phone.value;
	if(cphone=="") {
		alert("전화번호는 반드시 기입해야됩니다!")
		f.phone.select();
		return false;
	}
	if(!vphone.test(cphone)) {
		alert("전화번호는 000-0000-0000 형식으로 입력하세요")
		f.phone.select();
		return false;
	}
	//아이디 체크
	var vid = /^[a-zA-Z0-9]{3,9}$/;
	var cid = f.id.value;
	if(cid == "") {
		alert("아이디는 반드시 기입해야됩니다!")
		f.id.select();
		return false;
	}
	if(!vid.test(cid)) {
		alert("아이디는 대소문자,숫자 형식으로 3~9자 입력하세요.")
		f.id.select();
		return false;
	}
	////////////
	f.submit();
}
</script>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="save.jsp" method="post" name="form1">
		<table border="1" align="center">
			<caption>회원성적입력</caption>
			<tr>
				<th>이름</th>
				<td><input type="text" name="name"></td>
			</tr>
			<tr>
				<th>국어</th>
				<td><input type="text" name="kor"></td>
			</tr>
			<tr>
				<th>영어</th>
				<td><input type="text" name="eng"></td>
			</tr>
			<tr>
				<th>수학</th>
				<td><input type="text" name="mat"></td>
			</tr>
			<tr>
				<th>전화번호</th>
				<td><input type="text" name="phone"></td>
			</tr>
			<tr>
				<th>아이디</th>
				<td><input type="text" name="id"></td>
			</tr>
			<tr>
				<td colspan="3" align="center">
					<input type="button" value="전송" onclick="check()">
					<input type="reset" value="초기화">
					<a href = "menu.jsp">
					<input type="button" value="메뉴"></a>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
	th,td {
		text-align: center;
	}
</style>
<script type="text/javascript">
function check() {
	var f = document.form1;
	var vid = /^[a-zA-Z0-9]{3,9}$/;
	var cid = f.id.value;
	if(cid=="") {
		alert("아이디 공백은 안됩니다.");
		f.id.select();
		return false;
	}
	if(!vid.test(cid)){
		alert("아이디 대소문자 숫자, 3~9글자 가능");
		f.id.select();
		return false;
	}
	var vpw = /^[0-9]{4,9}$/;
	var cpw = f.pw.value;
	if(cpw==""){
		alert("비밀번호 공백은 안됩니다.");
		f.pw.select();
		return false;
	}
	if(vpw.test(cpw)){
	}
	else{
		alert("비밀번호 숫자 4~9글자 가능");
		f.pw.select();
		return false;
	}
	var vname = /^[가-힣]{2,5}$/;
	var cname = f.name.value;
	if(cname==""){
		alert("이름 공백은 안됩니다.");
		f.name.select();
		return false;
	}
	if(vname.test(cname)){
	}
	else{
		alert("이름 한글로만 입력 2~5자.");
		f.name.select();
		return false;
	}
	var vphone = /^[\d]{3}-[\d]{4}-[\d]{4}$/;
	var cphone = f.phone.value;
	if(cphone==""){
		alert("전화번호 공백은 안됩니다.");
		f.phone.select();
		return false;
	}
	if(vphone.test(cphone)){
	}
	else{
		alert("전화번호는 000-0000-0000형식");
		f.phone.select();
		return false;
	}
	///////
	f.submit();
}
</script>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="save.jsp" method="post" name="form1">
		<table border="1" align="center">
			<tr>
				<th>아이디</th>
				<td><input type="text" name="id"></td>
			</tr>
			<tr>
				<th>비밀번호</th>
				<td><input type="password" name="pw"></td>
			</tr>
			<tr>
				<th>이름</th>
				<td><input type="text" name="name"></td>
			</tr>
			<tr>
				<th>전화번호</th>
				<td><input type="text" name="phone"></td>
			</tr>
			<tr>
				<th>성별</th>
				<td><input type="radio" name="gender" value="남자">남자
				<input type="radio" name="gender" value="여자">여자</td>
			</tr>
			<tr>
				<td colspan="3" align="center">
					<input type="button" value="전송" onclick="check()">
					<input type="reset" value="초기화">
					<a href = "menu.jsp">
					<input type="button" value="메뉴"></a>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

'JSP' 카테고리의 다른 글

230127_DB  (0) 2023.01.27
230126_DB  (0) 2023.01.26
230120_DB  (0) 2023.01.20
230119_DB  (0) 2023.01.19
230118_DB  (0) 2023.01.18

댓글