[SIST] JSP_days03_response 객체 / 리다이렉트(redirect) / 포워드(forward) / GET 방식 + 서블릿 + JDBC + 포워딩 예제(JSTL 맛보기)
·
TIL/View Template
1. JSP 기본 객체 중에 자주 사용하는 객체 - response 객체 1-1. respnse 기능 1) 응답 헤더 정보 입력 2) 리다이렉트(redirect) 하기 (사전적의미 : 다른 방향으로 다시 보내다, 전송하다) * 이외에 기능이 있지만, JSP 페이지에서는 거의 사용하지 않음 1-2. 리다이렉트(redirect) 기능 설명 - 리다이렉트는 웹 서버가 웹 브라우저에게 다른 페이지로 이동하라고 응답하는 기능 - 새로운 페이지에서는 request와 response 객체가 새롭게 생성된다. 따라서 파라미터 값이 전달되지 않기 때문에 직접 구현해 주어야 한다. - ex) 사용자가 로그인에 성공한 후 메인 페이지로 자동으로 이동하는 사이트처럼 특정 페이지를 실행한 후 지정한 페이지로 이동하길 원할 때 ..
[SIST] JSP_days02_DB연동해보기(JDBC)
·
TIL/View Template
DB 연동하기 전 작업) 1. 기존에 JDBC 수업 때 사용했던 DBconn.java 파일을 src/main/java 안에 com.utill 패키지 안에 복사 붙여넣기 2. days02 패키지 생성 후 DeptDTO 파일 복사 붙여넣기 3. JDBC Driver를 연결하기 위해서 프로젝트의 src -> main -> webapp -> WEB-INF -> lib 폴더에 ojdbc6.jar 파일을 복사해서 붙여넣기 예제) dept 테이블의 부서명을 가져와 option 태그에 value로 넣기 [ex05_dept.jsp] [결과]
[SIST] JDBC_days06
·
TIL/JDBC
1. 부서번호 입력받아 삭제하는 저장프로시저 생성 + CallableStatement + 예외처리 문제) dept 테이블에서 부서번호를 입력받아서 부서를 삭제하는 up_deleteDept 저장 프로시저를 선언하고 CallableStatement 를 사용해서 부서를 삭제하는 코딩 ( 조건 : 삭제할 부서가 없는 경우는 예외 처리를 할 수 있게 코딩 ) [ 저장 프로시저 ] [ main ] 2. CallableStatement와 출력용 파라미터(커서) 사용하는 예제1 문제) emp테이블에서 deptno를 파라미터로 입력받아서 그 부서에 속해있는 사원 정보 반환하는 저장프로시저 생성(up_selectEmp) 후 Java에서 CallableStatement를 사용해서 출력 처리 > registerOutParam..
[SIST] JDBC_days05_Java에서 트랜잭션 처리와 CallableStatement
·
TIL/JDBC
[ 트랜잭션 ] 1. 트랜잭션 이란? - 하나의 논리적인 작업 단위 == 트랜잭션 - 하나의 논리적인 작업 단위 모두가 완료(성공) - 커밋 - 하나의 논리적인 작업 단위 모두가 완료 X - 롤백 예) 계좌 이체 = 1) + 2) 모두 성공하면 커밋, 하나라도 실패하면 롤백 1) A -> 돈을 인출 2) B -> A의 돈을 입금 2. Java에서 트랜잭션 처리 예시 트랜잭션 처리 전 예시) 위의 코딩을 실행시키면 deptno가 중복되는 값이 추가되려고 하기 때문에 1) 작업이 실행이 되어 INSERT가 되어지고 2) 작업은 에러가 발생한다. 오라클 디벨로퍼에서 데이터를 확인해 보면 1) 작업 후 INSERT가 된 것을 확인할 수 있다. 1), 2) 작업이 모두 완료했을 때만 COMMIT 될 수 있도록 트..
[SIST] JDBC_days05_페이징 처리하기
·
TIL/JDBC
오늘 수업은 어제 만들었던 게시판 코딩에 페이징 처리하는 작업 추가 + Java에서 트랜잭션처리 + CallableStatement에 대해서 배웠다. 페이징 처리하는 부분 따로 트랜잭션 + CallableStatement 따로 정리하여 글을 업로드하려고 한다. 페이징 처리하기 전에 한글 이름을 만드는 함수와 게시판 테이블에 347개의 게시글을 추가하는 익명 프로시저를 만들어 데이터를 추가하였다. [ 이름 생성하는 함수 ] [ n개의 게시글을 추가하는 익명프로시저 ] 1. 페이징 처리 로직 게시판에 메서드를 추가하기 전에 로직먼저 생각하였다. 아래와 같이 해당하는 페이지에는 [ ] 이렇게 표시를 하고 이전 페이지가 있으면 next 버튼을 생성한다. 페이..
[SIST] JDBC_days04
·
TIL/JDBC
☞ DTO란? - Data Transfer Object의 약자 - Data를 저장해서 전송하기 위한 객체이며, 어떤 데이터를 담을 수 있는 객체이다. 쉽게 그릇이라고 생각하면 된다! * JDBC_days02 글에도 정리되어 있음 ☞ DAO란? - Data Access Object의 약자 - DB의 Data에 접근하기 위한 객체이며, CRUD 작업을 할 수 있는 객체이다. - 데이터를 처리할 수 있는 편리성, 보안성 때문에 DAO를 사용한다. 오늘은 JDBC 수업 3일차에 생성했던 게시판 테이블(tbl_cstVSBoard)을 가지고 MVC 패턴(View 제외)으로 코딩하는 것을 배웠다. 상세한 내용을 작성하기 전에 순서를 먼저 적어보자면 아래와 같다. 1. tbl_cstvsboard 게시판 테이블 생성 및..
[SIST] JDBC_days03
·
TIL/JDBC
1. 복습문제 2개 1) ConnectionString.properties 파일을 Properties 컬렉션을 사용해서 hostname, sid, user, password 속성값을 읽어 DB 연동 후 HR의 departments 테이블의 부서 정보를 출력하는 코딩을 하세요. ㄱ. Statement 사용. ㄴ. ArrayList list 사용. ㄷ. manager_id 가 NULL 인 부서 정보만 출력. [main() 메서드] [printDepartment 메서드] [DepartmentsDTO 클래스] > 오라클 디벨로퍼에서 DESC departments; 쿼리로 자료형 확인 후 private 변수 선언 및 자동으로 생성자, getter/setter, toString() 생성 package days03;..
[SIST] JDBC_days02
·
TIL/JDBC
1. 부서 번호를 입력받아서 emp 테이블 조회하기 hiredate는 Oracle에서 자료형이 DATE인데 일단 String으로 받아와도 문제없이 잘 출력은 된다. [주의!!] try-catch문 밖에 아래와 같이 코딩이 되어있는데.. Connection conn = null; Statement stmt = null; Connection 객체와 Statement 객체는 null로 선언 후 try-catch문 안에서 값을 집어넣어줬기 때문에 try-catch-finally의 finally 문에서 close() 닫는 작업을 해줘야 한다. 현재 ResultSet은 try-catch문 안에서 바로 값을 집어넣었기 때문에 닫는 작업을 하지 않아도 되지만 만약 밖에서 null로 초기 선언을 한다면 동일하게 clos..
[SIST] JDBC_days01
·
TIL/JDBC
오늘은 오전에 오라클로 DB 모델링했던 프로젝트를 발표하였고 오후부터 JDBC 수업을 시작하였다. 수업에 사용하는 jdk와 jre version는 1.8이라 1.8로 지정해주고 인코딩도 UTF-8로 변경한 뒤 수업을 시작하였다! 1. JDBC 1) [J]ava [D]ata [B]ase [C]onnectivity 약자 2) 자바 표준 인터페이스 - DBMS 연동 + 작업(CRUD) * CRUD? create read update delete.. 3) Data Base 연동 기술 2. Java 응용 프로그램 + Oracle DBMS 연동 Java 응용 프로그램 > JDBC(표준 인터페이스) < Oracle DBMS 연동 1) 오라클사에서 JDBC를 구현한 드라이버(driver)가 Oracle Driver이며..