Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

Everything has an expiration date

★★★ [JSP & JDBC & Oracle] 20231212 [프로그램소스] - Test002, WebApp08_scott, MemberInsert 본문

[JSP & JDBC & Oracle]/Program source (JSP & JDBC & Oracle)

★★★ [JSP & JDBC & Oracle] 20231212 [프로그램소스] - Test002, WebApp08_scott, MemberInsert

Jelly-fish 2023. 12. 13. 01:25

 

 

WebApp08

 


01
Test002, MemberInsert(페이지 뒷단 Logic 처리)


 

 

Test002.jsp

 

 

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="com.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<% 
	// 결과값 변수
	String str = "";

	// 데이터베이스 연결
	Connection conn = DBConn.getConnection();
	
	// 쿼리문 준비(select)
	String sql = "SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID";
	
	// 작업 객체 생성 및 쿼리문 실행
	
	Statement stmt = conn.createStatement();
	
	ResultSet rs = stmt.executeQuery(sql);
	
	// 결과 ResultSet 에 대한 처리 → 반복문
	
	str += "<table class='table'>";
	str += "<tr>";
	str += "<th id='numTitle'>번호</th>";
	str += "<th id='nameTitle'>이름</th>";
	str += "<th id='telTitle'>전화번호</th>";
	str += "</tr>";
	
	while(rs.next())
	{
		str += "<tr>";
		str += "<td class='contentTd'>" + rs.getString("SID") + "</td>";
		str += "<td class='contentTd'>" + rs.getString("NAME") + "</td>";
		str += "<td class='contentTd'>" + rs.getString("TEL") + "</td>";
		str += "</tr>";
	}
	
	str += "</table>";

	rs.close();
	stmt.close();
	DBConn.close();
	
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test002.jsp</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<style type="text/css">
	input {width: 200px;}
	button {width: 208px; height: 50px; font-weight: bold;}
	#numTitle {width: 50px;}
	#nameTitle {width: 100px;}
	#telTitle {width: 160px;}
	.errMsg {font-size: small; color: red; display: none;}
	/* td {text-align: center;} */
	.contentTd {text-align: center;}
</style>


<script type="text/javascript">
	
	// 필수 입력 항목 (→ 이름)에 대한 기본적인 입력 확인
	function formCheck()
	{
		// 확인
		//alert("함수 호출~!!!");

		var uName = document.getElementById("userName");
		var nameErr = document.getElementById("nameErr");
		
		// 데이터 추가 버튼 클릭했을 때 이름이 입력되어 있다면
		// 에러메시지를 노출하지 않도록 설정.
		nameErr.style.display = "none";
		
		// 필수 입력 항목이 입력 되지 않았다면
		// 에러메시지 보이도록.
		if (uName.value == "")
		{
			nameErr.style.display = "inline";
			return false;
		}
		
		//return false;
		return true;
	}
	
</script>


</head>
<body>

<div>
	<h1>데이터베이스 연결 및 데이터 처리</h1>
	<hr>
</div>

<div>
	<!-- 데이터 입력 -->
	<form 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="nameErr">이름을 입력해야 합니다.</span>
				</td>
			</tr>
			<tr>
				<th>전화번호</th>
				<td>
					<input type="text" id="userTel" name="userTel" class="txt">
				</td>
			</tr>
			<tr>
				<th></th>
				<td>
					<button type="submit" id="btnAdd" class="btncontrol">데이터 추가</button>
				</td>
			</tr>
		</table>
	</form>
</div>
<br><br>



<div>
<!-- [정적인 처리 결과 출력물 예시]
	처리 결과
	<table class="table">
		<tr>
			<th id="numTitle">번호</th>
			<th id="nameTitle">이름</th>
			<th id="telTitle">전화번호</th>
		</tr>
		<tr>
			<td class="contentTd">5</td>
			<td class="contentTd">박나영</td>
			<td class="contentTd">010-5555-5555</td>
		</tr>
		<tr>
			<td class="contentTd">6</td>
			<td class="contentTd">정현욱</td>
			<td class="contentTd">010-6666-6666</td>
		</tr>
	</table>
 -->
 	<%=str %>
</div>






</body>
</html>

 


 

WebApp08_scott.sql

 

[Data Base - Oracle : TBL_Member]

 

SELECT USER
FROM DUAL;
--==>> SCOTT


SELECT *
FROM TAB;

-- 휴지통 비우기
PURGE RECYCLEBIN;
--==>> RECYCLEBIN이(가) 비워졌습니다.

SELECT *
FROM TAB;

-- 기존 테이블 제거
DROP TABLE TBL_MEMBER;
--==>> Table TBL_MEMBER이(가) 삭제되었습니다.

--------------------------------------------------------------------------------

--○ 실습 테이블 생성 (TBL_MEMBER)

CREATE TABLE TBL_MEMBER
( SID   NUMBER
, NAME  VARCHAR2(30)
, TEL   VARCHAR2(40)
, CONSTRAINT MEMBER_SID_PK PRIMARY KEY(SID)
);
--==>> Table TBL_MEMBER이(가) 생성되었습니다.


--○ 시퀀스 생성 (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-1111-1111')
;
--==>> 1 행 이(가) 삽입되었습니다.


--○ 샘플 데이터 추가 입력
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')
;
--==>> 1 행 이(가) 삽입되었습니다. * 3


--○ 테이블 전체 조회 쿼리문 구성(리스트 확인)
SELECT SID, NAME, TEL
FROM TBL_MEMBER
ORDER BY SID;
--> 한 줄 구성
SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID
;
--==>> 
/*
==========================
SID	NAME        	TEL
==========================
1	문정환	010-1111-1111
2	정한울	010-2222-2222
3	최혜인	010-3333-3333
4	길현욱	010-4444-4444
==========================
*/

--○ 인원 수 확인 쿼리문 구성
SELECT COUNT(*) AS COUNT
FROM TBL_MEMBER;
--> 한 줄 구성
SELECT COUNT(*) AS COUNT FROM TBL_MEMBER
;
--==>> 4

--○ 커밋
COMMIT;
--==>> 커밋 완료.

 

 

 

 

 


 

MemberInsert.jsp (Logic)

 

 

<%@page import="java.sql.Statement"%>
<%@page import="com.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<% 
	// MemberInsert.jsp
	
	// 이전 페이지(Test002.jsp)로부터 넘어온 데이터 수신
	// → userName, userTel

	// 한글 데이터 깨짐 방지
	request.setCharacterEncoding("UTF-8");

	String uName = request.getParameter("userName");
	String uTel = request.getParameter("userTel");
	
	// 데이터베이스 연결
	
	Connection conn = DBConn.getConnection();
	
	// 쿼리문 준비(insert)
	
	String sql = String.format("INSERT INTO TBL_MEMBER(SID, NAME, TEL)"
						     + "VALUES (MEMBERSEQ.NEXTVAL, '%s', '%s')", uName, uTel);
	
	// DB 액션 처리 → 작업 객체 생성 및 쿼리문 수행
	
	Statement stmt = conn.createStatement();
	int result = 0;
	result = stmt.executeUpdate(sql);

	stmt.close();
	DBConn.close();
	
	if (result < 1)
	{
		// 입력 액션 처리가 정상적으로 이루어지지 않은 경우
		response.sendRedirect("Error.jsp");
		//-- 내가 잘 아는 에러 페이지를 소개시켜줄게...
		
	}
	else
	{
		// 입력 액션 처리가 정상적으로 이루어진 경우
		response.sendRedirect("Test002.jsp");
		//-- 이 페이지로 오기 전에 네가 머물던 리스트 페이지 주소를
		//   새롭게 다시 요청해서 찾아가봐~!!!
		//   네가 입력하려는 내용이 추가된 상태로 리스트의 내용이 바뀌어 있을거야...
	}
	

%>