본문 바로가기
Web(국비)/DB연결

DB연결2

by Xion 2019. 10. 25.

Memberinsert002.jps(자바 코드만 기입하는 곳)

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="com.util.DBConn"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%

		
		//자바와 관련된 내용만 적기
		request.setCharacterEncoding("UTF-8");
		//○데이터 수신 (Test002.jsp로 부터 ...)
		String uName = request.getParameter("userName");
   		String uTel = request.getParameter("userTel");
		
		//○ DB연결
		
		Connection conn = DBConn.getConnection();
		
		//DB에 쿼리문 전송하기 위해 
		//DB에전송할 쿼리문 준비 ->insert
		String sql = String.format("INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, '%s','%s')",uName,uTel);

		//○ DB 액션 처리 ->insert
		//작업객체
		Statement stmt=conn.createStatement();
		//적용된 행의 갯수 반환
		int result=0;
		result=stmt.executeUpdate(sql);
		
		if(result<1)
		{
			//등록이 안된경우라면,
			//URL변경 ->sendRedirect() 메소드 이용
			response.sendRedirect("Err002.jsp");
			
		}
		else
		{
			//등록된 경우라면
			//URL변경 안내 ->sendRedirect() 메소드 이용
			response.sendRedirect("Test002.jsp");
		}
		
		
%>

DBConn.java

package com.util;

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

public class DBConn
{
   private static Connection dbConn;
   
   public static Connection getConnection() throws ClassNotFoundException, SQLException
   {
      if (dbConn == null)
      {
         String url = "jdbc:oracle:thin:@localhost:1521:xe";
         String user = "scott";
         String pwd = "tiger";
         Class.forName("oracle.jdbc.driver.OracleDriver");
         dbConn = DriverManager.getConnection(url, user, pwd);
      }
      return dbConn;
   }
   
   public static Connection getConnection(String url, String user, String pwd) throws ClassNotFoundException, SQLException
   {
      if (dbConn == null)
      {
         Class.forName("oracle.jdbc.driver.OracleDriver");
         dbConn = DriverManager.getConnection(url, user, pwd);
      }
      return dbConn;
   }
   
   public static void close() throws SQLException
   {
      if (dbConn != null)
      {
         if(!dbConn.isClosed())
            dbConn.close();
      }
      dbConn = null;
   }
}

Test002.jsp

<%@page import="com.util.DBConn"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
		//TBL_MEMBER테이블에 저장된값을 주세요
		
		//결과값 변수 구성
		String str="";

		//데이터베이스 연결
		Connection conn = DBConn.getConnection();
		
		//쿼리문준비
		String sql="SELECT SID,NAME,TEL FROM TBL_MEMBER";
		
		//작업 객체 생성 및 준비된 쿼리문 수행
		//처음 생성한거니  statement작업객체
		Statement stmt=conn.createStatement();
		ResultSet rs=stmt.executeQuery(sql);
		
		//결과 ResultSet에 대한 처리 ->반복문 구성
		str += "<table class='tb'>";
		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>"+rs.getString("SID")+"</td>";
			str+="<td>"+rs.getString("NAME")+"</td>";
			str+="<td>"+rs.getString("TEL")+"</td>";
			str+="</tr>";
			
			/* 또는
			sb.append("<tr>");
		      sb.append("<td>" + rs.getString("SID") + "</td>");
		      sb.append("<td>" + rs.getString("NAME") + "</td>");
		      sb.append("<td>" + rs.getString("TEL") + "</td>");
		      sb.append("</tr>"); 
		     */
		}
		str+="</table>";
		
		rs.close();
		stmt.close();
		DBConn.close();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="styleSheet" type="text/css" href="css/mains.css">
<style type="text/css">
	input{width:200px;}
	button{width:200px; height:50px; font-weight:bold;}
	button:hover{color:orange;}
	.errMsg{font-size:small; color:red; display:none;}
	th{background-color:gray; color:white;}
	#numTitle{width:50px;}
	#nameTitle{width:100px;}
	#telTitle{width:160px;}
	
</style>

<script type="text/javascript">

	function formCheck()
	{
		var uName=document.getElementById("userName");
		var nErr=document.getElementById("nameErr");
		nErr.style.display="none";
		
		if(uName.value=="")
			{
			nErr.style.display="inline";
			return false;
			}
		return true;
	}
</script>
</head>
<body>
	<div>
		<h2>데이터베이스 연결 및 데이터 처리</h2>

		<!--  사용자 최초 요청 페이지 -->
		<!--  http://localhost:8090/WebApp06/Test002.jsp -->


	</div>

	<div>
		<form action="Memberinsert002.jsp" method="post" onsubmit="return formCheck()">
			<table>

				<tr>
					<th>이름(*)</th>
					<td><input type="text" id="userName" name="userName">
						<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="btn">데이터추가</button>
					</td>
				</tr>
			</table>

		</form>
	</div>
	<div>
		<%=str %>
	</div>
</body>
</html>

 

WebApp06_scott.sql


--기존 테이블 제거
DROP TABLE TBL_MEMBER PURGE;

-->Table TBL_MEMBER이(가) 삭제되었습니다.



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

--기존 시퀀스 제거
DROP SEQUENCE MEMBERSEQ;
-->Sequence MEMBERSEQ이(가) 삭제되었습니다.


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


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

--○테이블 전체 조회 쿼리문 구성
SELECT SID,NAME,TEL
FROM TBL_MEMBER;
-->한줄구성
SELECT SID,NAME,TEL FROM TBL_MEMBER;
-->1	강초롱	010-1111-1111

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

--커밋
COMMIT;


'Web(국비) > DB연결' 카테고리의 다른 글

DB연결-WebApp09  (0) 2019.10.28
DB-연결 WebApp08  (0) 2019.10.28
[Java] score DB연결  (0) 2019.10.28
DB연결1  (0) 2019.10.27
DB연결  (0) 2019.10.25