Data Scientist 옌

매일 발전하는 IT문제해결사

국비지원교육 (22.01-22.07)/강의노트

22-03-29(화) 042일차 [HTML, JavaScript] select, delete 가능한 창에서 insert, update 구현해보기, 데이터 주고받기

옌炎 2022. 5. 17. 10:11
728x90

수업내용


1교시 (09:30-10:20)

  • test.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Test</title>
	<script type="text/javascript">
	</script>
</head>
<body>
	<h3>Test</h3>
	<hr>
	<script>
		var v = "";
		if (v) {
			alert("if(v) >>> : " + v);
		} else {
			alert("else >>> : " + v);
		}
		
		var vv = "";
		if (!vv) {
			alert("if(!vv) >>> : " + vv);
		} else {
			alert("else >>> : " + vv);
		}
	</script>
</body>
</html>

2교시 (10:30-11:20)

  • insert, update 기능 추가하기
    • t6scr.html
    • t6Update.jsp
    • t6Insert.jsp
    • t6UpdateOk.jsp
    • t6Delete.jsp
    • t6DeleteOk.jsp

3교시 (11:30-12:20)

  • insert, update 기능 추가하기

4교시 (12:30-13:20)

  • insert, update 기능 추가하기

5교시 (14:30-15:20)

insert, update 기능 추가하기 (new code) - back

  • T6VO.java
package a.b.c.t6.vo;

public class T6VO {
	
	private String t1;
	private String t2;
	private String t3;
	private String t4;
	private String t5;
	private String t6;
	
	private String fromdate;
	private String todate;
	
	// 생성자
	public T6VO() {

	}

	public T6VO(String t1, String t2, String t3, String t4, String t5, String t6) {
		super();
		this.t1 = t1;
		this.t2 = t2;
		this.t3 = t3;
		this.t4 = t4;
		this.t5 = t5;
		this.t6 = t6;
	}
	
	// getters
	public String getT1() {
		return t1;
	}
	public String getT2() {
		return t2;
	}
	public String getT3() {
		return t3;
	}
	public String getT4() {
		return t4;
	}
	public String getT5() {
		return t5;
	}
	public String getT6() {
		return t6;
	}
	public String getFromdate() {
		return fromdate;
	}
	public String getTodate() {
		return todate;
	}
	
	// setters
	public void setT1(String t1) {
		this.t1 = t1;
	}
	public void setT2(String t2) {
		this.t2 = t2;
	}
	public void setT3(String t3) {
		this.t3 = t3;
	}
	public void setT4(String t4) {
		this.t4 = t4;
	}
	public void setT5(String t5) {
		this.t5 = t5;
	}
	public void setT6(String t6) {
		this.t6 = t6;
	}
	public void setFromdate(String fromdate) {
		this.fromdate = fromdate;
	}
	public void setTodate(String todate) {
		this.todate = todate;
	}
}
  • T6QueryMap.java
package a.b.c.t6.sql;

public class T6QueryMap {
	
	// 전체 검색
	public static String getT6SelectAll() {
		
		System.out.println("[METHOD] :: T6QueryMap :: getT6SelectAll()");
		
		StringBuffer sb = new StringBuffer();
		sb.append("	SELECT  						\n"); 
		sb.append("			 A.T1         	AS T1   \n");
		sb.append("			,A.T2         	AS T2 	\n");  
		sb.append("			,A.T3        	AS T3  	\n");
		sb.append("			,A.T4           AS T4  	\n");		 
		sb.append("			,TO_CHAR(A.T5, 'YYYY-MM-DD') 	AS T5  \n");
		sb.append("			,TO_CHAR(A.T6, 'YYYY-MM-DD')  	AS T6  \n");		
		sb.append("	FROM     TEST_T6 A 				\n");
		sb.append("	WHERE    A.T4 = 'Y'   			\n");
		sb.append(" ORDER BY 1 DESC					\n");
		
		return sb.toString();
	}
	
	// 이름 검색
	public static String getT6SelectName() {
		
		System.out.println("[METHOD] :: T6QueryMap :: getT6SelectName()");
		
		StringBuffer sb = new StringBuffer();
		sb.append("	SELECT  						\n"); 
		sb.append("			 A.T1         	AS T1   \n");
		sb.append("			,A.T2         	AS T2 	\n");  
		sb.append("			,A.T3        	AS T3  	\n");
		sb.append("			,A.T4           AS T4  	\n");		 
		sb.append("			,TO_CHAR(A.T5, 'YYYY-MM-DD') 	AS T5  \n");
		sb.append("			,TO_CHAR(A.T6, 'YYYY-MM-DD')  	AS T6  \n");		
		sb.append("	FROM     TEST_T6 A 				\n");
		sb.append("	WHERE    A.T4 = 'Y'   			\n");
		sb.append(" AND      A.T2 = ?				\n"); // place holder 1 
		
		return sb.toString();
	}
	
	// 날짜 검색
	public static String getT6SelectDate() {
		
		System.out.println("[METHOD] :: T6QueryMap :: getT6SelectDate()");
		
		StringBuffer sb = new StringBuffer();
		sb.append("	SELECT  						\n"); 
		sb.append("			 A.T1         	AS T1   \n");
		sb.append("			,A.T2         	AS T2 	\n");  
		sb.append("			,A.T3        	AS T3  	\n");
		sb.append("			,A.T4           AS T4  	\n");		 
		sb.append("			,TO_CHAR(A.T5, 'YYYY-MM-DD') 	AS T5  \n");
		sb.append("			,TO_CHAR(A.T6, 'YYYY-MM-DD')  	AS T6  \n");		
		sb.append("	FROM     TEST_T6 A 				\n");
		sb.append("	WHERE    A.T4 = 'Y'   			\n");
		sb.append(" AND      TO_CHAR(TO_DATE(A.T5), 'YYYYMMDD') >= TO_CHAR(TO_DATE(?), 'YYYYMMDD') 	\n"); // place holder 1 
		sb.append(" AND      TO_CHAR(TO_DATE(A.T5), 'YYYYMMDD') <= TO_CHAR(TO_DATE(?), 'YYYYMMDD') 	\n"); // place holder 2
		
		return sb.toString();
	}
	

	// 입력
	public static String getT6Insert() {
		
		System.out.println("[METHOD] :: T6QueryMap :: getT6Insert()");
		
		StringBuffer sb = new StringBuffer();
		sb.append("	INSERT INTO  					\n");
		sb.append("		TEST_T6  					\n");
		sb.append("				(  					\n");		
		sb.append("			 		 T1         	\n"); // place holder 1 
		sb.append("			 	  	,T2         	\n"); // place holder 2 
		sb.append("			 	  	,T3         	\n"); // place holder 3 
		sb.append("			 	  	,T4         	\n"); // 'Y'	
		sb.append("			 	  	,T5         	\n"); // SYSDATE
		sb.append("			 	  	,T6         	\n"); // SYSDATE
		sb.append("				)  					\n");
		sb.append("		VALUES  					\n");
		sb.append("				(  					\n");
		sb.append("			 		 ?         		\n"); // place holder 1 :: T1
		sb.append("			 	  	,?         		\n"); // place holder 2 :: T2
		sb.append("			 	  	,?         		\n"); // place holder 3 :: T3
		sb.append("			 	  	,'Y'         	\n"); // T4
		sb.append("			 	  	,SYSDATE        \n"); // T5
		sb.append("			 	  	,SYSDATE        \n"); // T6
		sb.append("				)  					\n");
		
		return sb.toString();
	}
	
	// 수정
	public static String getT6Update() {
		
		System.out.println("[METHOD] :: T6QueryMap :: getT6Update()");
		
		StringBuffer sb = new StringBuffer();
		sb.append("	UPDATE TEST_T6   				\n");
		sb.append("		SET	  						\n");
		sb.append("			 T2 = ?         	 	\n"); // place holder 1 :: T2
		sb.append("			,T3 = ?        	 		\n"); // place holder 2 :: T3  		
		sb.append("			,T6 = SYSDATE       	\n");		 
		sb.append("	WHERE    T4 = 'Y'   			\n");
		sb.append(" AND      T1 = ?					\n"); // place holder 3 :: T1
		
		return sb.toString();
	}
	
	// 삭제
	public static String getT6Delete() {
		
		System.out.println("[METHOD] :: T6QueryMap :: getT6Delete()");
		
		StringBuffer sb = new StringBuffer();
		sb.append("	UPDATE TEST_T6   				\n");
		sb.append("		SET	  						\n");
		sb.append("			 T4 = 'N'         		\n"); // place holder 1 :: T2	  	
		sb.append("			,T6 = SYSDATE       	\n");		 
		sb.append("	WHERE    T4 = 'Y'   			\n");
		sb.append(" AND      T1 = ?					\n"); // place holder 3 :: T1
		
		return sb.toString();
	}
	
	// 회원번호 검색
	public static String getT6SelectNum() {
		
		System.out.println("[METHOD] :: T6QueryMap :: getT6SelectNum()");
		
		StringBuffer sb = new StringBuffer();
		sb.append("	SELECT  						\n"); 
		sb.append("			 A.T1         	AS T1   \n");
		sb.append("			,A.T2         	AS T2 	\n");  
		sb.append("			,A.T3        	AS T3  	\n");
		sb.append("			,A.T4           AS T4  	\n");		 
		sb.append("			,TO_CHAR(A.T5, 'YYYY-MM-DD') 	AS T5  \n");
		sb.append("			,TO_CHAR(A.T6, 'YYYY-MM-DD')  	AS T6  \n");		
		sb.append("	FROM     TEST_T6 A 				\n");
		sb.append("	WHERE    A.T4 = 'Y'   			\n");
		sb.append(" AND      A.T1 = ?				\n"); // place holder 1 
		
		return sb.toString();
	}
}
  • T6Service.java
package a.b.c.t6.service;

import java.util.ArrayList;

import a.b.c.t6.vo.T6VO;

public interface T6Service {

	// 전체 검색
	public ArrayList<T6VO> t6SelectAll();
	// 이름 검색
	public ArrayList<T6VO> t6SelectName(T6VO tvo);
	// 날짜 검색
	public ArrayList<T6VO> t6SelectDate(T6VO tvo);

	// 입력
	public boolean t6Insert(T6VO tvo);
	// 수정
	public boolean t6Update(T6VO tvo);
	// 삭제
	public boolean t6Delete(T6VO tvo);
	
	// 회원번호 검색
	public ArrayList<T6VO> t6SelectNum(T6VO tvo);
}
  • T6ServiceImpl.java
package a.b.c.t6.service;

import java.util.ArrayList;

import a.b.c.t6.vo.T6VO;

import a.b.c.t6.dao.T6DAO;
import a.b.c.t6.dao.T6DAOImpl;

public class T6ServiceImpl implements T6Service {

	@Override
	public ArrayList<T6VO> t6SelectAll() {
		// TODO Auto-generated method stub
		
		T6DAO tdao = new T6DAOImpl();
		return tdao.t6SelectAll();
	}

	@Override
	public ArrayList<T6VO> t6SelectName(T6VO tvo) {
		// TODO Auto-generated method stub
		
		T6DAO tdao = new T6DAOImpl();
		ArrayList<T6VO> aList = tdao.t6SelectName(tvo);
		
		return aList;
	}

	@Override
	public ArrayList<T6VO> t6SelectDate(T6VO tvo) {
		// TODO Auto-generated method stub
		
		T6DAO tdao = new T6DAOImpl();
		ArrayList<T6VO> aList = tdao.t6SelectDate(tvo);
		
		return aList;
	}

	@Override
	public boolean t6Insert(T6VO tvo) {
		// TODO Auto-generated method stub
		
		T6DAO tdao = new T6DAOImpl();
		boolean bool = tdao.t6Insert(tvo);
		
		return bool;
	}

	@Override
	public boolean t6Update(T6VO tvo) {
		// TODO Auto-generated method stub

		T6DAO tdao = new T6DAOImpl();
		boolean bool = tdao.t6Update(tvo);
		
		return bool;
	}

	@Override
	public boolean t6Delete(T6VO tvo) {
		// TODO Auto-generated method stub

		T6DAO tdao = new T6DAOImpl();
		boolean bool = tdao.t6Delete(tvo);
		
		return bool;
	}
	
	@Override
	public ArrayList<T6VO> t6SelectNum(T6VO tvo) {
		
		T6DAO tdao = new T6DAOImpl();
		ArrayList<T6VO> aList = tdao.t6SelectNum(tvo);
		
		return aList;
	}
}
  • T6DAO.java
package a.b.c.t6.dao;

import java.util.ArrayList;

import a.b.c.t6.vo.T6VO;

public interface T6DAO {
	
	// 전체 검색
	public ArrayList<T6VO> t6SelectAll();
	// 이름 검색
	public ArrayList<T6VO> t6SelectName(T6VO tvo);
	// 날짜 검색
	public ArrayList<T6VO> t6SelectDate(T6VO tvo);

	// 입력
	public boolean t6Insert(T6VO tvo);
	// 수정
	public boolean t6Update(T6VO tvo);
	// 삭제
	public boolean t6Delete(T6VO tvo);
	
	// 회원번호 검색
	public ArrayList<T6VO> t6SelectNum(T6VO tvo);
}
  • T6DAOImpl.java
package a.b.c.t6.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import a.b.c.t6.common.OracleConnProperty;
import a.b.c.t6.sql.T6QueryMap;

import a.b.c.t6.vo.T6VO;

public class T6DAOImpl implements T6DAO {

	// 전체 검색
	@Override
	public ArrayList<T6VO> t6SelectAll() {
		// TODO Auto-generated method stub

		System.out.println("[METHOD] :: T6DAOImpl :: t6SelectAll()");
		
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rsRs = null;
		ArrayList<T6VO> aList = null;
		T6VO _tvo = null;
		
		try {
			
			conn = OracleConnProperty.getConnection();
			String sql = T6QueryMap.getT6SelectAll();
			pstmt = conn.prepareStatement(sql);
			System.out.println("[METHOD] :: T6DAOImpl :: t6SelectAll() :: [QUERY] \n" + sql);
			rsRs = pstmt.executeQuery();
			
			if (rsRs != null) {
				
				aList = new ArrayList<T6VO>();
				
				while (rsRs.next()) {
					_tvo = new T6VO();
					
					_tvo.setT1(rsRs.getString("T1"));
					_tvo.setT2(rsRs.getString("T2"));
					_tvo.setT3(rsRs.getString("T3"));
					_tvo.setT4(rsRs.getString("T4"));
					_tvo.setT5(rsRs.getString("T5"));
					_tvo.setT6(rsRs.getString("T6"));
					
					aList.add(_tvo);
				}
			} else {
				System.out.println("[METHOD] :: T6DAOImpl :: t6SelectName() :: 전체 검색 결과 없음");
			}
			
		} catch (Exception e) {
			System.out.println("[METHOD] :: T6DAOImpl :: t6SelectName() :: 전체 검색 중 에러 >>> : " + e.getMessage());
		} finally {
			OracleConnProperty.conClose(conn, pstmt, rsRs);
		}
		return aList;
	}

	// 이름 검색
	@Override
	public ArrayList<T6VO> t6SelectName(T6VO tvo) {
		// TODO Auto-generated method stub
		
		System.out.println("[METHOD] :: T6DAOImpl :: t6SelectName()");
		
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rsRs = null;
		ArrayList<T6VO> aList = null;
		T6VO _tvo = null;
		
		try {
			
			conn = OracleConnProperty.getConnection();
			String sql = T6QueryMap.getT6SelectName();
			pstmt = conn.prepareStatement(sql);
			System.out.println("[METHOD] :: T6DAOImpl :: t6SelectName() :: [QUERY] \n" + sql);

			pstmt.clearParameters();
			pstmt.setString(1, tvo.getT2());
			
			rsRs = pstmt.executeQuery();
			
			if (rsRs != null) {
				
				aList = new ArrayList<T6VO>();
				
				while (rsRs.next()) {
					_tvo = new T6VO();
					
					_tvo.setT1(rsRs.getString("T1"));
					_tvo.setT2(rsRs.getString("T2"));
					_tvo.setT3(rsRs.getString("T3"));
					_tvo.setT4(rsRs.getString("T4"));
					_tvo.setT5(rsRs.getString("T5"));
					_tvo.setT6(rsRs.getString("T6"));
					
					aList.add(_tvo);
				}
			} else {
				System.out.println("[METHOD] :: T6DAOImpl :: t6SelectName() :: 이름 검색 결과 없음");
			}
			
		} catch (Exception e) {
			System.out.println("[METHOD] :: T6DAOImpl :: t6SelectName() :: 이름 검색 중 에러 >>> : " + e.getMessage());
		} finally {
			OracleConnProperty.conClose(conn, pstmt, rsRs);
		}
		return aList;
	}
	
	// 날짜 검색
	@Override
	public ArrayList<T6VO> t6SelectDate(T6VO tvo) {
		// TODO Auto-generated method stub
		
		System.out.println("[METHOD] :: T6DAOImpl :: t6SelectDate()");
		
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rsRs = null;
		ArrayList<T6VO> aList = null;
		T6VO _tvo = null;
		
		try {
			
			conn = OracleConnProperty.getConnection();
			String sql = T6QueryMap.getT6SelectDate();
			pstmt = conn.prepareStatement(sql);
			System.out.println("[METHOD] :: T6DAOImpl :: t6SelectDate() :: [QUERY] \n" + sql);

			pstmt.clearParameters();
			pstmt.setString(1, tvo.getFromdate());
			pstmt.setString(2, tvo.getTodate());
			
			rsRs = pstmt.executeQuery();
			
			if (rsRs != null) {
				
				aList = new ArrayList<T6VO>();
				
				while (rsRs.next()) {
					_tvo = new T6VO();
					
					_tvo.setT1(rsRs.getString("T1"));
					_tvo.setT2(rsRs.getString("T2"));
					_tvo.setT3(rsRs.getString("T3"));
					_tvo.setT4(rsRs.getString("T4"));
					_tvo.setT5(rsRs.getString("T5"));
					_tvo.setT6(rsRs.getString("T6"));
					
					aList.add(_tvo);
				}
			} else {
				System.out.println("[METHOD] :: T6DAOImpl :: t6SelectDate() :: 날짜 검색 결과 없음");
			}
			
		} catch (Exception e) {
			System.out.println("[METHOD] :: T6DAOImpl :: t6SelectDate() :: 날짜 검색 중 에러 >>> : " + e.getMessage());
		} finally {
			OracleConnProperty.conClose(conn, pstmt, rsRs);
		}
		return aList;
	}

	
	// 입력
		/*
		JDBC 를 이용해서 데이터베이스에 입력,  수정, 삭제, 조회
		
		sqlplus
		---------------
		조회 : SELECT : DQL 
		입력, 수정, 삭제 : INSERT, UPDATE, DELETE : DML : TRANSACTION : COMMIT, ROLLBACK
			DML  문장으로 데이터를 테이블에 입력하면 
			1. 메모리에 쓴다.
			2. 메모리에 저장된 내용을 확인 하고 
			   목적에 맞으면 COMMIT,  맞지않으면 ROLLBACK 
			3. COMMIT 으로 파일에 쓴 이후에는 ROLLBACK 되지 않는다.
		
		splplus 에서 하는 것이 아니고 
		jdbc 드라이버를 이용해서 자바 프로그램에서 구현하는 것 
		
		자바프로그램 - jdbc 드라이버 - 오라클 데이터베이스 
		
		1. Connection
		2. PreparedStatement 쿼리문은 데이터베이스에 전달
		3. ResultSet, int 데이베이스에서 수행된 결과를 프로그램으로 전달 받아야 한다.
		
		SELECT
			테이블에서 조회된 ROW(파일)가 프로그램으로 전달 된다.
			Connection 
			PreparedStatement
			ResultSet
			executQuery() 
		
		INSERT, UPDATE, DELETE 
			테이블에 반영된 결과를 건수로 전달된다. 
			Connection 
			PreparedStatement
			int 
			executUpdate()
			
			jdbc 드라이버에서 일을 해준다. (Oracle 에서 jdbc 만드는 개발자가 정해준다.)
			jdbc 드라이버를 이용해서 
			오라클 데이터베이스 테이블에 데이터를 입력하면 
			최소 1건은 자동으로 커밋을 해준다. <-- 버전 별로 ???
			
			커밋을 어디서 콘트롤 하는가 : jdbc 드라이버에서 역활을 하고 : 오라클 엔진에게 요청을 한다. 
			개발자가 할 수 있는 일은
			Connection 인터페이스 setAutoCommit(), getAutCommit() 두가지 함수를 가지고 
			jdbc 드라이버에게 요청을 하면 
			jdbc 드라이버가 오라클 엔진(옵티마이저)에게 요청을 한다.
			요청을 받은 오라클 엔지(옵티마이저)가 현재 그 테이블의 상태를 보고 
			요청한 정보를 수행 한다. 
			
			Connection 인터페이스를 이용해서 
				자바프로그램 - jdbc 드라이버 - 오라클 데이터베이스 가 연결되면
			Connection.setAutoCommit() true 인 상태가 된다.
			setAutoCommit 이 true 인 상태에서 최초 1건 만 자동으로 커밋을 한다. 		 
		*/
	
	@Override
	public boolean t6Insert(T6VO tvo) {
		// TODO Auto-generated method stub
		
		System.out.println("[METHOD] :: T6DAOImpl :: t6Insert()");
		
		Connection conn = null;
		PreparedStatement pstmt = null;
		int nCnt = 0;
		boolean bool = false;
		
		try {
			
			conn = OracleConnProperty.getConnection();
			String sql = T6QueryMap.getT6Insert();
			pstmt = conn.prepareStatement(sql);
			System.out.println("[METHOD] :: T6DAOImpl :: t6Insert() :: [QUERY] \n" + sql);
			
			pstmt.clearParameters();
			pstmt.setString(1, tvo.getT1()); // 채번
			pstmt.setString(2, tvo.getT2()); // 이름
			pstmt.setString(3, tvo.getT3()); // 나이
			
			nCnt = pstmt.executeUpdate();
			if (!conn.getAutoCommit()) conn.commit();
			
			if (nCnt > 0) {
				System.out.println("[METHOD] :: T6DAOImpl :: t6Insert() :: " + nCnt + " 건 입력 성공");
				bool = true;
			} else {
				System.out.println("[METHOD] :: T6DAOImpl :: t6Insert() :: 입력 실패");
			}
		} catch (Exception e) {
			System.out.println("[METHOD] :: T6DAOImpl :: t6Insert() :: 입력 중 에러 >>> : " + e.getMessage());
		} finally {
			OracleConnProperty.conClose(conn, pstmt);
		}
		return bool;
	}

	// 수정
	@Override
	public boolean t6Update(T6VO tvo) {
		// TODO Auto-generated method stub
		
		System.out.println("[METHOD] :: T6DAOImpl :: t6Update()");
		
		Connection conn = null;
		PreparedStatement pstmt = null;
		int nCnt = 0;
		boolean bool = false;
		
		try {
			
			conn = OracleConnProperty.getConnection();
			String sql = T6QueryMap.getT6Update();
			pstmt = conn.prepareStatement(sql);
			System.out.println("[METHOD] :: T6DAOImpl :: t6Update() :: [QUERY] \n" + sql);
			
			pstmt.clearParameters();
			pstmt.setString(1, tvo.getT2()); // 이름
			pstmt.setString(2, tvo.getT3()); // 나이
			pstmt.setString(3, tvo.getT1()); // 회원번호
			
			nCnt = pstmt.executeUpdate();
			if (!conn.getAutoCommit()) conn.commit();
			
			if (nCnt > 0) {
				System.out.println("[METHOD] :: T6DAOImpl :: t6Update() :: " + nCnt + " 건 수정 성공");
				bool = true;
			} else {
				System.out.println("[METHOD] :: T6DAOImpl :: t6Update() :: 수정 실패");
			}
		} catch (Exception e) {
			System.out.println("[METHOD] :: T6DAOImpl :: t6Update() :: 수정 중 에러 >>> : " + e.getMessage());
		} finally {
			OracleConnProperty.conClose(conn, pstmt);
		}
		return bool;
	}

	// 삭제
	@Override
	public boolean t6Delete(T6VO tvo) {
		// TODO Auto-generated method stub
		
		System.out.println("[METHOD] :: T6DAOImpl :: t6Delete()");
		
		Connection conn = null;
		PreparedStatement pstmt = null;
		int nCnt = 0;
		boolean bool = false;
		
		try {
			
			conn = OracleConnProperty.getConnection();
			String sql = T6QueryMap.getT6Delete();
			pstmt = conn.prepareStatement(sql);
			System.out.println("[METHOD] :: T6DAOImpl :: t6Delete() :: [QUERY] \n" + sql);
			
			pstmt.clearParameters();
			pstmt.setString(1, tvo.getT1()); // 회원 번호
			
			nCnt = pstmt.executeUpdate();
			if (!conn.getAutoCommit()) conn.commit();
			
			if (nCnt > 0) {
				System.out.println("[METHOD] :: T6DAOImpl :: t6Delete() :: " + nCnt + " 건 삭제 성공");
				bool = true;
			} else {
				System.out.println("[METHOD] :: T6DAOImpl :: t6Delete() :: 삭제 실패");
			}
		} catch (Exception e) {
			System.out.println("[METHOD] :: T6DAOImpl :: t6Delete() :: 삭제 중 에러 >>> : " + e.getMessage());
		} finally {
			OracleConnProperty.conClose(conn, pstmt);
		}
		return bool;
	}
	
	// 회원번호 검색 추가
	@Override
	public ArrayList<T6VO> t6SelectNum(T6VO tvo) {
		
		System.out.println("[METHOD] :: T6DAOImpl :: t6SelectNum()");
		
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rsRs = null;
		ArrayList<T6VO> aList = null;
		T6VO _tvo = null;
		
		try {
			
			conn = OracleConnProperty.getConnection();
			String sql = T6QueryMap.getT6SelectNum();
			pstmt = conn.prepareStatement(sql);
			System.out.println("[METHOD] :: T6DAOImpl :: t6SelectNum() :: [QUERY] \n" + sql);

			pstmt.clearParameters();
			pstmt.setString(1, tvo.getT1());
			
			rsRs = pstmt.executeQuery();
			
			if (rsRs != null) {
				
				aList = new ArrayList<T6VO>();
				
				while (rsRs.next()) {
					_tvo = new T6VO();
					
					_tvo.setT1(rsRs.getString("T1"));
					_tvo.setT2(rsRs.getString("T2"));
					_tvo.setT3(rsRs.getString("T3"));
					_tvo.setT4(rsRs.getString("T4"));
					_tvo.setT5(rsRs.getString("T5"));
					_tvo.setT6(rsRs.getString("T6"));
					
					aList.add(_tvo);
				}
			} else {
				System.out.println("[METHOD] :: T6DAOImpl :: t6SelectNum() :: 회원번호 검색 결과 없음");
			}
			
		} catch (Exception e) {
			System.out.println("[METHOD] :: T6DAOImpl :: t6SelectNum() :: 회원번호 검색 중 에러 >>> : " + e.getMessage());
		} finally {
			OracleConnProperty.conClose(conn, pstmt, rsRs);
		}
		return aList;
	}
}
  • T6Scr.java
package a.b.c.t6.scr;

import java.util.ArrayList;
import java.util.Scanner;

import a.b.c.t6.service.T6Service;
import a.b.c.t6.service.T6ServiceImpl;
import a.b.c.t6.vo.T6VO;
import a.b.c.t6.common.ChabunUtil;
import a.b.c.t6.common.DateUtil;

public class T6Scr {

	public ArrayList<T6VO> t6SelectAll() {
		
		System.out.println("[METHOD] :: T6Scr :: t6SelectAll :: 전체 검색");
		
		T6Service ts = new T6ServiceImpl();
		ArrayList<T6VO> aList = ts.t6SelectAll();
		
		return aList;
	}
	
	public ArrayList<T6VO> t6SelectName(String t2) {
		
		System.out.println("[METHOD] :: T6Scr :: t6SelectName :: 이름 검색");
		
		T6Service ts = new T6ServiceImpl();
		T6VO _tvo = null;
		_tvo = new T6VO();
		_tvo.setT2(t2);
		
		ArrayList<T6VO> aList = ts.t6SelectName(_tvo);
		
		return aList;
	}
	
	public ArrayList<T6VO> t6SelectDate(String fromdate, String todate) {
		
		System.out.println("[METHOD] :: T6Scr :: t6SelectDate :: 날짜 검색");
		
		T6Service ts = new T6ServiceImpl();
		T6VO _tvo = null;
		_tvo = new T6VO();
		_tvo.setFromdate(fromdate);
		_tvo.setTodate(todate);
		
		ArrayList<T6VO> aList = ts.t6SelectDate(_tvo);
		
		return aList;
	}

	
	public boolean t6Insert(String t1, String t2, String t3) {
		
		System.out.println("[METHOD] :: T6Scr :: t6Insert :: 입력");
		
		T6Service ts = new T6ServiceImpl();
		T6VO _tvo = null;
		_tvo = new T6VO();
		_tvo.setT1(t1);
		_tvo.setT2(t2);
		_tvo.setT3(t3);
		
		boolean bool = ts.t6Insert(_tvo);
		
		return bool;
	}
	
	public boolean t6Update(String t1, String t2, String t3) {
		System.out.println("[METHOD] :: T6Scr :: t6Update :: 수정");
		
		T6Service ts = new T6ServiceImpl();
		T6VO _tvo = null;
		_tvo = new T6VO();
		_tvo.setT1(t1);
		_tvo.setT2(t2);
		_tvo.setT3(t3);
		
		boolean bool = ts.t6Update(_tvo);
		
		return bool;
	}
	
	public boolean t6Delete(String t1) {
		System.out.println("[METHOD] :: T6Scr :: t6Delete :: 삭제");
		
		T6Service ts = new T6ServiceImpl();
		T6VO _tvo = null;
		_tvo = new T6VO();
		_tvo.setT1(t1);
		
		boolean bool = ts.t6Delete(_tvo);
		
		return bool;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		System.out.println("[METHOD] :: T6Scr :: main()");
		
		Scanner sc = null;
		
		try {
			System.out.println("[검색 방법]		\n"
					+ "1. 전체 검색		\n"
					+ "2. 이름 검색		\n"
					+ "3. 날짜 검색		\n"
					+ "4. 입력		\n"
					+ "5. 수정		\n"
					+ "6. 삭제		\n");
			
			sc = new Scanner(System.in);
			int n = sc.nextInt();
			
			if (1 == n ) {
				System.out.println("T6Scr :: [" + n + "] 전체 검색");
				
				T6Scr tscr = new T6Scr();
				ArrayList<T6VO> aList =  tscr.t6SelectAll();
				
				if (aList != null && aList.size() > 0) {
					for (int i=0; i < aList.size(); i++) {
						T6VO _tvo = aList.get(i);
						
						System.out.print(_tvo.getT1() + " : ");
						System.out.print(_tvo.getT2() + " : ");
						System.out.print(_tvo.getT3() + " : ");
						System.out.print(_tvo.getT4() + " : ");
						System.out.print(_tvo.getT5() + " : ");
						System.out.println(_tvo.getT6());
					}
				}
			}
			
			if (2 == n ) {
				System.out.println("T6Scr :: [" + n + "] 이름 검색");
				System.out.println("T6Scr :: 검색할 이름을 입력하세요.");
				Scanner sc1 = new Scanner(System.in);
				String t2 = sc1.next();
				
				T6Scr tscr = new T6Scr();
				ArrayList<T6VO> aList =  tscr.t6SelectName(t2);
				
				if (aList != null && aList.size() > 0) {
					for (int i=0; i < aList.size(); i++) {
						T6VO _tvo = aList.get(i);
						
						System.out.print(_tvo.getT1() + " : ");
						System.out.print(_tvo.getT2() + " : ");
						System.out.print(_tvo.getT3() + " : ");
						System.out.print(_tvo.getT4() + " : ");
						System.out.print(_tvo.getT5() + " : ");
						System.out.println(_tvo.getT6());
					}
				}
				if (sc1 != null) { sc1.close(); sc1 = null; }
			}
			
			if (3 == n ) {
				System.out.println("T6Scr :: [" + n + "] 날짜 검색");
				System.out.println("T6Scr :: 검색할 날짜의 시작 날짜를 입력하세요. (YYYY-MM-DD 형식)");
				Scanner sc2 = new Scanner(System.in);
				String fromdate = sc2.next();
				System.out.println("T6Scr :: 검색할 날짜의 마지막 날짜를 입력하세요.(YYYY-MM-DD 형식)");
				String todate = sc2.next();
				
				if (DateUtil.fromtoDate(fromdate, todate)) return;
				
				T6Scr tscr = new T6Scr();
				ArrayList<T6VO> aList =  tscr.t6SelectDate(fromdate, todate);
				
				if (aList != null && aList.size() > 0) {
					for (int i=0; i < aList.size(); i++) {
						T6VO _tvo = aList.get(i);
						
						System.out.print(_tvo.getT1() + " : ");
						System.out.print(_tvo.getT2() + " : ");
						System.out.print(_tvo.getT3() + " : ");
						System.out.print(_tvo.getT4() + " : ");
						System.out.print(_tvo.getT5() + " : ");
						System.out.println(_tvo.getT6());
					}
				}
				if (sc2 != null) { sc2.close(); sc2 = null; }
			}
			
			
			if (4 == n ) {
				System.out.println("T6Scr :: [" + n + "] 입력");
				System.out.println("T6Scr :: 신규 회원의 이름을 입력하세요.");
				Scanner sc3 = new Scanner(System.in);
				String t1 = ChabunUtil.getT6Chabun("d");
				String t2 = sc3.next();
				System.out.println("T6Scr :: 신규 회원의 나이를 입력하세요.");
				String t3 = sc3.next();
				
				T6Scr tscr = new T6Scr();
				boolean bool =  tscr.t6Insert(t1, t2, t3);
				
				if (bool) {
					System.out.println("T6Scr :: 입력 성공");
				} else {
					System.out.println("T6Scr :: 입력 실패");
				}
				if (sc3 != null) { sc3.close(); sc3 = null; }
			}
			
			if (5 == n ) {
				System.out.println("T6Scr :: [" + n + "] 수정");
				System.out.println("T6Scr :: 수정할 회원의 이름을 입력하세요.");
				Scanner sc4 = new Scanner(System.in);
				String t2 = sc4.next();
				System.out.println("T6Scr :: 수정할 회원의 나이를 입력하세요.");
				String t3 = sc4.next();
				System.out.println("T6Scr :: 수정할 회원의 회원번호를 입력하세요.");
				String t1 = sc4.next();
				
				T6Scr tscr = new T6Scr();
				boolean bool =  tscr.t6Update(t1, t2, t3);
				
				if (bool) {
					System.out.println("T6Scr :: 수정 성공");
				} else {
					System.out.println("T6Scr :: 수정 실패");
				}
				if (sc4 != null) { sc4.close(); sc4 = null; }
			}
			
			if (6 == n ) {
				System.out.println("T6Scr :: [" + n + "] 삭제");
				System.out.println("T6Scr :: 삭제할 회원의 회원번호를 입력하세요.");
				Scanner sc5 = new Scanner(System.in);
				String t1 = sc5.next();
				
				T6Scr tscr = new T6Scr();
				boolean bool =  tscr.t6Delete(t1);
				
				if (bool) {
					System.out.println("T6Scr :: 삭제 성공");
				} else {
					System.out.println("T6Scr :: 삭제 실패");
				}
				if (sc5 != null) { sc5.close(); sc5 = null; }
			}
			
		} catch (Exception e) {
			System.out.println("[ERROR] T6Scr :: 에러 >>> : " + e.getMessage());
		} finally {
			if (sc != null) { sc.close(); sc = null; }
		}
	}
}

6교시 (15:30-16:20)

insert, update 기능 추가하기 (new code) - front

  • t6scr.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>TEST_T6 테이블</title>
	<!-- 
	CDN 
	<script src="http://code.jquery.com/jquery-latest.min.js"></script>
	-->
	
	<link rel="stylesheet" href="/firstWeb/calendar_datepicker/jquery-ui-1.12.1/jquery-ui.min.css">
	<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
	<script src="/firstWeb/calendar_datepicker/jquery-ui-1.12.1/jquery-ui.min.js"></script>
	
	<script src="/firstWeb/calendar_datepicker/jquery-ui-1.12.1/datepicker-ko.js"></script>
	<script type="text/javascript">
		
		alert("스크립트 블록에 진입 성공 >>> : ");
		
		// jQuery는 스크립트 블록 ready 함수 블록에 만들어야 한다.
		$(document).ready(function(){
			alert("jQuery ready() 함수 진입 성공 >>> : ");
			
			// 이름 검색
			$("#t2name_btn").click(function(){
				
				alert("t2name_btn 버튼 클릭 성공 >>> : ");
				console.log("t2name_btn 버튼 클릭 성공 >>> : ");
				
				// jQuery val() 함수를 이용한 것
				// $("#t2").val() : 제이쿼리 선택자 아이디 
				// val : 값을 가져오는 제이쿼리 함수 
				var t2 = $("#t2").val();
				console.log("t2 >>> : " + t2);
				
				// 자바스크립트 getElementById("아이디명") 함수 와 
				// 자바스크립트 value 속성을 이용한 것 
				// getElementById() :  아이디를 찾아오는 자바스크립트 함수
				// t2 : <input type="text" id="t2" id의 속성의 값
				var t2_1 = document.getElementById("t2");
				console.log("t2_1 >>> : " + t2_1);
				console.log("t2_1.value >>> : " + t2_1.value);
				
				// 자바스크립트 태그의 name 속성 및 
				// 자바스크립트 value 속성을 이용한 것 
				// document : BOM document 객체
				// form_t2_name : form 태그의 name 속성의 값
				// t2 : <input type="text" name="t2" name의 속성의 값
				var t2_2 = document.form_t2_name.t2;
				console.log("t2_2 >>> : " + t2_2);
				console.log("t2_2.value >>> : " + t2_2.value);
				
				
				// http://localhost:8088/firstWeb/test_t6/t6selectName.jsp
				$("#form_t2_name").attr(
					{
						"action":"/firstWeb/test_t6/t6selectName.jsp",
						"method":"GET"
					}
				).submit();
			});
			
			// 날짜 검색 from date $("#fromdate").datepicker(value);
			$("#fromdate").datepicker(
				{
					showOn: "button",
			        buttonImage: "/firstWeb/calendar_datepicker/images/calendar.gif",
				    buttonImageOnly: false,
					buttonText: "Select date",				
					onClose: function( selectedDate ) {    
						// 시작일(fromdate) datepicker가 닫힐때
						// 종료일(todate)의 선택할수있는 최소 날짜(minDate)를 선택한 시작일로 지정
						$("#todate").datepicker( "option", "minDate", selectedDate );
					}       
				}
			);
			// 날짜 검색 to date
			$("#todate").datepicker(
				{
					showOn: "button",
			        buttonImage: "/firstWeb/calendar_datepicker/images/calendar.gif",
				    buttonImageOnly: false,
					buttonText: "Select date",
					onClose: function( selectedDate ) {
						// 종료일(todate) datepicker가 닫힐때
						// 시작일(fromdate)의 선택할수있는 최대 날짜(maxDate)를 선택한 종료일로 지정 
						$("#fromdate").datepicker( "option", "maxDate", selectedDate );
					}     				
				}
			);
			
			// 날짜 검색
			$("#t5date_btn").click(function(){
				alert("t5date_btn 버튼 클릭 성공 >>> : ");
				
				// http://localhost:8088/firstWeb/test_t6/t6selectDate.jsp
				$("#form_t5_date").attr(
					{
						"action":"/firstWeb/test_t6/t6selectDate.jsp",
						"method":"GET"
					}
				).submit();
			});
			
			// 입력
			$("#t6insert_btn").click(function(){
				alert("t6insert_btn 버튼 클릭 성공 >>> : ");
				
				// http://localhost:8088/firstWeb/test_t6/t6Insert.jsp
				$("#form_t2_insert").attr(
					{
						"action":"/firstWeb/test_t6/t6Insert.jsp",
						"method":"GET"
					}
				).submit();
			});
			
			// 수정
			$("#t6update_btn").click(function(){
				alert("t6update_btn 버튼 클릭 성공 >>> : ");
				
				// http://localhost:8088/firstWeb/test_t6/t6Update.jsp
				$("#form_t6_update").attr(
					{
						"action":"/firstWeb/test_t6/t6Update.jsp",
						"method":"GET"
					}
				).submit();
			});
			
			// 삭제
			$("#t6delete_btn").click(function(){
				alert("t6delete_btn 버튼 클릭 성공 >>> : ");
				
				// http://localhost:8088/firstWeb/test_t6/t6Update.jsp
				$("#form_t6_delete").attr(
					{
						"action":"/firstWeb/test_t6/t6Update.jsp",
						"method":"GET"
					}
				).submit();
			});
		});
		
	</script>
</head>
<body>
	<h3>TEST_T6 테이블</h3>
	<hr>
		<a href="/firstWeb/test_t6/t6selectAll.jsp">전체 조회</a>
	<br>
	
		<form name="form_t2_name" id="form_t2_name">
		이름 검색 <input type="text" name="t2" id="t2" />
			  <input type="button" id="t2name_btn" value="이름검색" />
		</form>
	<br>
	
		<form name="form_t5_date" id="form_t5_date">
		날짜 검색 <input type="text" name="fromdate" id="fromdate"
		style="width:100px;height:20px;font-size:15px;" /> ~
		<input type="text" name="todate" id="todate" style="width:100px;height:20px;font-size:15px;" />
	   	<input type="button" id="t5date_btn" value="날짜검색" />
		</form>
	<br>
	
		<a href="#">데이터 입력</a><br>
		<form name="form_t6_insert" id="form_t2_insert">
		이름 <input type="text" name="t2" id="t2"><br>
		나이 <input type="text" name="t3" id="t3"><br>
			<input type="button" id="t6insert_btn" value="입력" />
		</form>
	<br>
	
		<a href="#">데이터 수정</a> T6202203170005 <br>
		<form name="form_t6_update" id="form_t6_update">
		회원번호 <input type="text" name="t1" id="t1">
			  <input type="button" id="t6update_btn" value="검색" />
		</form>
	<br>
		<a href="#">데이터 삭제</a> T6202205050009 <br>
		<form name="form_t6_delete" id="form_t6_delete">
		회원번호 <input type="text" name="t1" id="t1">
			  <input type="button" id="t6delete_btn" value="검색" />
		</form>
</body>
</html>
  • t6Update.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="a.b.c.t6.service.T6Service" %>
<%@ page import="a.b.c.t6.service.T6ServiceImpl" %>
<%@ page import="a.b.c.t6.vo.T6VO" %>
<%@ page import="java.util.ArrayList" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TEST_T6 SELECT NUM</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
	
	//jQuery 는 스크립트 블럭 ready 함수 블럭에 만들어야 한다.
	$(document).ready(function(){
		
		// 수정
		$("#t6update_btn_ok").click(function(){
			alert("t6update_btn_ok 버튼 클릭 성공 >>> : ");
			
			// http://localhost:8088/firstWeb/test_t6/t6UpdateOk.jsp
			$("#form_t6_update_ok").attr(
				{
					"action":"/firstWeb/test_t6/t6UpdateOk.jsp",
					"method":"GET"
				}
			).submit();
		});
		
		// 삭제
		$("#t6delete_btn_ok").click(function(){
			alert("t6delete_btn_ok 버튼 클릭 성공 >>> : ");
			
			// http://localhost:8088/firstWeb/test_t6/t6DeleteOk.jsp
			$("#form_t6_update_ok").attr(
				{
					"action":"/firstWeb/test_t6/t6DeleteOk.jsp",
					"method":"GET"
				}
			).submit();
		});
	});

</script>
</head>
<body>
<h3 align="center">TEST_T6 SELECT NUM</h3>
<hr>
<form name="form_t6_update_ok" id="form_t6_update_ok">
<table border="1" align="center">
<%
	String t1 = request.getParameter("t1");
	System.out.println("t1 >>> : " + t1);
	T6VO tvo = null;
	tvo = new T6VO();		
	tvo.setT1(t1);

	T6Service ts = new T6ServiceImpl();	
	ArrayList<T6VO> aList = ts.t6SelectNum(tvo);
	
	if (aList !=null && aList.size() == 1) {
		
		T6VO _tvo = aList.get(0);
		System.out.print(_tvo.getT1() + " : ");
		System.out.print(_tvo.getT2() + " : ");
		System.out.print(_tvo.getT3() + " : ");
		System.out.print(_tvo.getT4() + " : ");
		System.out.print(_tvo.getT5() + " : ");
		System.out.println(_tvo.getT6());
%>
<tr>
	<td colspan="2" align="center">회원 글 수정하기</td>
</tr>	 
<tr>
	<td align="center">T1</td>
	<td><input type="text" name="t1" id="t1" size="20" readonly value="<%= _tvo.getT1() %>"></td>
</tr>
<tr>
	<td align="center">T2</td>
	<td><input type="text" name="t2" id="t2" size="20" value="<%= _tvo.getT2() %>"></td>
</tr>
<tr>
	<td  align="center">T3</td>
	<td><input type="text" name="t3" id="t3" size="20" value="<%= _tvo.getT3() %>"></td>			
</tr>
<tr>
	<td  align="center">T4</td>
	<td><input type="text" name="t4" id="t4" size="20" disabled value="<%= _tvo.getT4() %>"></td>			
</tr>						
<tr>
	<td  align="center">T5</td>
	<td><input type="text" name="t5" size="20" disabled value="<%= _tvo.getT5() %>"></td>
</tr>
	<tr>
	<td  align="center">T6</td>
	<td><input type="text" name="t6" size="20" disabled value="<%= _tvo.getT6() %>"></td>
</tr>
<tr>
	<td colspan="2" align="center">		
		<input type="button" value="수정" id="t6update_btn_ok">	
		<input type="button" value="삭제" id="t6delete_btn_ok">						
	</td>	
</tr>	
</table>
</form>		
<%							
	}
%>
</body>
</html>
  • t6Insert.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="a.b.c.t6.service.T6Service" %>
<%@ page import="a.b.c.t6.service.T6ServiceImpl" %>
<%@ page import="a.b.c.t6.vo.T6VO" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="a.b.c.t6.common.ChabunUtil" %>
<%@ page import="a.b.c.t6.common.DateUtil" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>TEST_T6 SELECT ALL</title>
</head>
<body>
	<h3>TEST_T6 SELECT NAME</h3>
	<hr>
	<%
		String t1 = ChabunUtil.getT6Chabun("d");
		String t2 = request.getParameter("t2");
		String t3 = request.getParameter("t3");
		
		T6VO tvo = null;
		tvo = new T6VO();
		tvo.setT1(t1);
		tvo.setT2(t2);
		tvo.setT3(t3);
		
		T6Service ts = new T6ServiceImpl();
		boolean bool = ts.t6Insert(tvo);
		
		if (bool) {
	%>
			<script>
				alert("입력 성공");
				location.jref="/firstWeb/test_t6/t6selectAll.jsp";
			</script>
	
	<%
		} else {
	%>
			<script>
				alert("입력 실패");
				history.go(-1);
			</script>
	<%
		}
	%>
</body>
</html>
  • t6UpdateOk.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="a.b.c.t6.service.T6Service" %>
<%@ page import="a.b.c.t6.service.T6ServiceImpl" %>
<%@ page import="a.b.c.t6.vo.T6VO" %>
<%@ page import="java.util.ArrayList" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TEST_T6 SELECT NUM</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
	
	//jQuery 는 스크립트 블럭 ready 함수 블럭에 만들어야 한다.
	$(document).ready(function(){
		
		// 수정
		$("#t6update_btn_ok").click(function(){
			alert("t6update_btn_ok 버튼 클릭 성공 >>> : ");
			
			// http://localhost:8088/firstWeb/test_t6/t6UpdateOk.jsp
			$("#form_t6_update_ok").attr(
				{
					"action":"/firstWeb/test_t6/t6UpdateOk.jsp",
					"method":"GET"
				}
			).submit();
		});
		
		// 삭제
		$("#t6delete_btn_ok").click(function(){
			alert("t6delete_btn_ok 버튼 클릭 성공 >>> : ");
			
			// http://localhost:8088/firstWeb/test_t6/t6DeleteOk.jsp
			$("#form_t6_update_ok").attr(
				{
					"action":"/firstWeb/test_t6/t6DeleteOk.jsp",
					"method":"GET"
				}
			).submit();
		});
	});

</script>
</head>
<body>
<h3 align="center">TEST_T6 SELECT NUM</h3>
<hr>
<form name="form_t6_update_ok" id="form_t6_update_ok">
<table border="1" align="center">
<%
	String t1 = request.getParameter("t1");
	System.out.println("t1 >>> : " + t1);
	T6VO tvo = null;
	tvo = new T6VO();		
	tvo.setT1(t1);

	T6Service ts = new T6ServiceImpl();	
	ArrayList<T6VO> aList = ts.t6SelectNum(tvo);
	
	if (aList !=null && aList.size() == 1) {
		
		T6VO _tvo = aList.get(0);
		System.out.print(_tvo.getT1() + " : ");
		System.out.print(_tvo.getT2() + " : ");
		System.out.print(_tvo.getT3() + " : ");
		System.out.print(_tvo.getT4() + " : ");
		System.out.print(_tvo.getT5() + " : ");
		System.out.println(_tvo.getT6());
%>
<tr>
	<td colspan="2" align="center">회원 글 수정하기</td>
</tr>	 
<tr>
	<td align="center">T1</td>
	<td><input type="text" name="t1" id="t1" size="20" readonly value="<%= _tvo.getT1() %>"></td>
</tr>
<tr>
	<td align="center">T2</td>
	<td><input type="text" name="t2" id="t2" size="20" value="<%= _tvo.getT2() %>"></td>
</tr>
<tr>
	<td  align="center">T3</td>
	<td><input type="text" name="t3" id="t3" size="20" value="<%= _tvo.getT3() %>"></td>			
</tr>
<tr>
	<td  align="center">T4</td>
	<td><input type="text" name="t4" id="t4" size="20" disabled value="<%= _tvo.getT4() %>"></td>			
</tr>						
<tr>
	<td  align="center">T5</td>
	<td><input type="text" name="t5" size="20" disabled value="<%= _tvo.getT5() %>"></td>
</tr>
	<tr>
	<td  align="center">T6</td>
	<td><input type="text" name="t6" size="20" disabled value="<%= _tvo.getT6() %>"></td>
</tr>
<tr>
	<td colspan="2" align="center">		
		<input type="button" value="수정" id="t6update_btn_ok">	
		<input type="button" value="삭제" id="t6delete_btn_ok">						
	</td>	
</tr>	
</table>
</form>		
<%							
	}
%>
</body>
</html>
  • t6DeleteOk.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="a.b.c.t6.service.T6Service" %>
<%@ page import="a.b.c.t6.service.T6ServiceImpl" %>
<%@ page import="a.b.c.t6.vo.T6VO" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>TEST_T6 DELETE OK</title>
</head>

<body>
	<h3>TEST_T6 DELETE OK</h3>
	<hr>
	<%
		String t1 = request.getParameter("t1");
	
		T6VO tvo= null;
		tvo = new T6VO();
		tvo.setT1(t1);
		
		T6Service ts = new T6ServiceImpl();
		boolean bool = ts.t6Delete(tvo);
		
		if (bool) {
	%>
			<script>
				alert("삭제 성공");
				location.href="/firstWeb/test_t6/t6selectAll.jsp";
			</script>
	<%
		} else {
	%>
			<script>
				alert("삭제 실패");
				history.go(-1);
			</script>
	<%
		}
	%>
</body>
</html>

7교시 (16:30-17:20)

  • getData_1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>getData_1 jsp</title>
</head>
<body>
	<h3>getData_1 jsp</h3>
	<hr>
	<!--
		HTML ------------------Web Server ---------------WAS -----DATABASE
							인코딩
							HTML    JSP
			GET		HEADER			탐캣 서버 환경설정 파일에서 한다.
			POST	BODY			탐캣 서버 환경설정 파일에서 한다.
									: 요청한 스트림을 받아서 인코딩한 것
									request.setCharacterEncoding("UTF-8");
		
		탐캣 서버 환경설정 파일에서 한다.
		1. server.xml : 탐캣 서버 전체에 인코딩 : GET 방식으로 들어오는 스트림 인코딩
			탐캣 서버 - Servers - Tomcat v8.5 Server at localhost-config -	server.xml	
			63라인 : Connector 	connectionTimeout="20000" 
						port="8088" 
						protocol="HTTP/1.1" 
						redirectPort="8443"
						URIEncoding="UTF-8"
		2. Context/WebContent/WEB-INF/web.xml : Context만 인코딩하는 것	
	-->
	<%
		request.setCharacterEncoding("UTF-8");
	%>
	<%
		String mname = request.getParameter("mname");
		String maddr = request.getParameter("madrr");
		
		System.out.println("mname >>> : " + mname);
		System.out.println("maddr >>> : " + maddr);
	%>
	
	이름 : <%= mname %><br>
	주소 : <%= maddr %>
	
</body>
</html>
  • getData_1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>FORM TAG</title>
</head>
<body>
	<!-- 폼 :서버(웹서버)로 데이터를 전송하는 유일한 태그 -->
		<!--  
			http://localhost:8088/firstWEb/jsp/getData.html#https://www.naver.com
		-->		
		<!-- 서버(웹서버)로 데이터를 전송하는 유일한 태그,요소 -->	
		<!-- 
			form태그에 이름지정(text), 
			기능지정(URL:서버어디로 갈지, #=>주석 못가게함), 
			방식지정(get,post :무슨방식인지), 
			인코딩방식 (	application/x-www-form-urlencoded, <-- default
						multipart/form-data, <-- file upload
						text/plain)
		-->
		<!-- 
			application/x-www-form-urlencoded
				: Default Content Type(form 태그에서 생략 가능)
				: [RFC1837]에 기술된  reserved characters를 규칙에 따라  Escape 해야 한다.
				: query String  형태로 서버에 데이터를 전송한다. 
				: query String : key&value형태
								:url?key=value&key=value& ....
				: url?name=진성희&addr=마포구+상수동    (+:띄어쓰기)
				: EBCDIC...?????나중에 배움
				: 2byte(8bit이상) : 한글==>이상하게 나옴   EBCDIC으로 나와서 뭐 나중에 추가해서 써야함
				: 1byte(7bit) : 영문자와 숫자, 기호 ==>잘나옴
				
			method
				: key&value가 body로 가면 post방식 header로 가면 get방식이다.
				
				: POST : 데이터를 reqeust 프로토콜 body 에 데이터를 넣어서 서버에 전송
					http://localhost:8088/testWeb/jsp/getData.jsp
					:데이터 노출안됨
				: GET : 데이터를 reqeust 프로토콜 header 에 데이터를 넣어서 서버에 전송,	key&value 형식이다.
					http://localhost:8088/testWeb/jsp/getData.jsp?name=aaa&addr=aaa
					:데이터가 노출된다=> 특별한 경우 아니면 사용 금지
				
			action 
				: url : 폼태그에 있는 데이터를 보내는 최종 목적지 	
						JSP,Servlet,PHP,.NET ..etc...
				: context:웹서버에 있는 파일절대경로를 톰켓에서 상대경로를 바꿔줌=>셋팅해서 사용해야한다.
							
		 -->

<!-- 
	http://localhost:8088/firstWeb/getData_jsp/getData_1.jsp
	<script>
		location.href="http://localhost:8088/firstWeb/getData_jsp/getData_1.jsp?mname=%EB%B0%95%EA%B1%B4%EC%9B%90&maddr=111";
	</script>

 --> 
	<form name="getData" id="getData"
		action="http://localhost:8088/firstWeb/getData_jsp/getData_1.jsp"
		method="GET"
		enctype="application/x-www-form-urlencoded">
		
	이름 : <input type="text" name="mname" id="mname"><br>
	주소 : <input type="text" name="maddr" id="maddr"><br>
	
	<!-- 
		이벤트함수
		submit :전송버튼  :서버로 보냄 ,폼태그에 있는 속성 action을 봄
		reset : 초기화버튼
		태그, 이름, 배열(형제요소임으로)로 찾을 수 있다.
	-->	
	<input type="submit" value="전송">
	<input type="reset" value="다시">
	</form>
</body>
</html>

8교시 (17:30-18:30)

  • getData_2.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
	
	// f=this.form
	function getData_2(f){
		//HTML은 DOMTREE와 RenderingTree로 구분된다.
		//object는 배열...순차있음 , 인덱스 사용 가능, 자식-부모-형제 find로 tag 찾을 수 있다. 
		//DOMTREE (object)
		
		//head는 DOM구성원이 아니라서 만들지 않는다.
		//[HTMLHtmlElement]
		//-body (object) [HTMLBodyElement]
		//     -form (object) [HTMLFormElement]
		//			-input name (object) [HTMLInputElement]
		//			-input addr (object) [HTMLInputElement]
		//			-input 전송    (object) [HTMLInputElement]
		//			-input 취소    (object) [HTMLInputElement]
		
		//DOMTREE형식으로 나온다.[object HTMLFormElement]
		//form이라고 쓴걸 가지고서 거기에 있는 formelement가 일을 한다.
		alert("f >>> : " + f);
		
		var mname = f.mname;
		alert("mname >>> : " + mname);
		var mname_value = mname.value;
		aleart("mname_value >>> : " + mname_value);
		
		var maddr = f.maddr;
		alert("maddr >>> : " + maddr);
		var maddr_value = maddr.value;
		aleart("mname_value >>> : " + maddr_value);
		
		// form 속성
		f.action = "/firstWeb/getData_jsp/getData_1.jsp";
		alert("f.action >>> : " + f.action);
		
		f.method = "GET";
		alert("f.method >>> : " + f.method);
		
		f.enctype = "application/x-www.form-utlencoded";
		alert("f.enctype >>> : " + f.enctype);
		
		f.submit();
	}
</script>
</head>
<body>
	<form name="getData" id="getData">
			
	이름 : <input type="text" name="mname" id="mname"><br>
	주소 : <input type="text" name="maddr" id="maddr"><br>
	
	<input type="submit" value="전송">
	<input type="reset" value="다시">
	</form>
</body>
</html>

Notes


728x90