본문 바로가기

전체 글388

[Oracle / SQL] 조인(JOIN) 여러가지 쿼리를 동시에 조회하는 것이다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 테이블에 별칭을 붙이는 방법 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 위 세개는 모두 같은 값을 조회한다. 테이블에서는 별칭을 붙일때 AS를 붙이면 에러가 뜬다. HTML 삽입 미리보기할 수 없는 소스 DEPTNO는 EMP와 DEPT 둘다 들어가있는데, 확실히 정해주지 않아서 오류가 뜬 것이다. 어떤 테이블에 있는 데이터를 조회할지 무조건 명확하게 명칭해주어야 한다. 예를들어 EMP.DEPTNO 라던가 DEPT.DEPTNO라고 해야한다. HTML 삽입 미리보기할 수 없는 소스 엄청 많이 나온다.. ORDER B.. 2023. 2. 27.
[Servlet / JSP ] 세션(Session) 데이터 저장, 전달, 삭제 방법 세션이란? 서버와 클라이언트간의 정보를 전달하는 것이다. 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법이다. 즉, 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 한다. 이전까지 서블릿과 jsp를 왔다갔다하며 항상 데이터 값들을 전달했다. 하지만 너무 불편하지 않은가? 그래서 세션을 사용한다. 세션에 한번 데이터를 전달하고 나면 불필요하게 이동할때마다 가지고 다닐 필요가없어서 사용한다. 즉, id값을 서버의 어딘가에 넣어 저장시키면 계속 저장하고있다. 이 공간을 세션이라 한다. 세션과 쿠키는 뭐가 다른데? 쿠키는 내 컴퓨터에 데이터가 저장이 된다이고 세션은 서버에 데이터가 저장된다. 1. 세션을 먼저 사용하려면 서블릿에서 세션 객체를 생성해주어야한다. Sevl.. 2023. 2. 26.
[Oracle / SQL] 단일행 함수(Single)와 다중행 함수(Mutible) 단일행 함수(SINGLE ROW FUNCTION) - 한개의 입력 한개의 출력 - SELECT, WHERE, ORDER BY, UPDATE의 SET 절에서 사용 가능 - 조회되는 컬럼 값이 같아야한다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 다중행 함수(Mutible ROW FUNCTION) - 일반적인 컬럼과 같이 조회가 불가하다. - 여러 행을 바탕으로 1개의 결과값을 도출 - 여러행이 결과로 나오는 열은 사용불가 HTML 삽입 미리보기할 수 없는 소스 위 쿼리는 실행안된다. 조회되는 컬럼 값이 같아야한다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 혹시라도 이런 쿼리로 숫자를 세려고한다면 절대 이렇게 하지말자. NULL 값은.. 2023. 2. 26.
[Oracle / SQL] 많이 쓰는 함수 NVL , NVL2 , DECODE , CASE NVL 함수 : NULL 값을 원하는 값으로 조회 NVL( 값 혹은 컬럼, 치환 값) NVL HTML 삽입 미리보기할 수 없는 소스 위에서 NVL은 COMM의 NULL 값을 0으로 바꿔주세요. 이다 HTML 삽입 미리보기할 수 없는 소스 위 쿼리는 자료형이 일치하지 않아서 실행안된다. COMM은 숫자형이니 문자열과 일치하지 않다. NVL2(값 혹은 컬럼, NULL이 아닐때 값, NULL일 때 치환 값) NVL2 HTML 삽입 미리보기할 수 없는 소스 NVL2을 말하자면, COMM이 널이 아니면 1000, 널이면 0이라는 말이다. HTML 삽입 미리보기할 수 없는 소스 NVL2는 자료형이 불일치하더라도 NVL과 다르게 조회가 가능하다. DECODE( ) 함수 -> 자바의 IF, ELSE IF, ELSE H.. 2023. 2. 26.
[React] 리액트 JSX문법, State 알아보기 JSX란? JavaScript에 XML을 추가한 문법이다. 그러나, JSX는 리액트로 프로젝트를 개발할 때 사용되므로 공식적인 자바스크립트 문법은 아니다. 사용법 - JSX(JavaScript XML)은 일반적인 HTML처럼 사용하면 된다. 단, JSX에서 특별히 허용되는 문법과 지켜야 할 문법이 존재하며 이 문법만 숙지하면 기존의 HTML 코드 안에 JavaScript 코드를 넣어 사용하는게 가능하다. JSX 에서 지켜야 할 문법 1. 하나의 부모 엘리먼트가 반드시 감싸야 한다. 만약 어떤 요소로 감싸기 애매할 경우 Fragment를 사용하기도 하는데, 처럼도 사용할 수 있다. 다만, Fragment는 일반 태그보다 처리속도가 느리므로 사용을 지양하는것이 좋다. 2.자바 스크립트 표현식 3. if, f.. 2023. 2. 26.
[React] 리액트 설치 방법과 개발 환경 세팅하기 1. node.js 를 깔아준다. https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. Visual Studio Code를 깔아준다. https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and availa.. 2023. 2. 25.
[JavaScript] 배열(Array)과 객체(Object) 차이, innerHTML 사용법 배열(Array)과 객체(Object) 차이, innerHTML 사용법 만약 상품을 만들었다면, 저장할 공간이 필요하다. 이때 Array 혹은 Object를 사용할 수 있다. 배열(Array) 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스(index) 라고한다. 객체(Object) 이름(name)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은 집합이다. key : value형태로 저장가능 Array와 Object의 차이점 중 한가지는 "순서" 이다. Array는 자료간 순서가 존재하지만, Object는 순서개념이 없다. HTML에 를 이용해 javascript의 기능을 추가해보았다. HTML에서 콘솔 창을 열어 각각 배열과 객.. 2023. 2. 25.
[Servlet / JSP ] 템플릿 형태로 JSP 사용하기 <jsp : include> 템플릿이 뭘까? 코드에서 고정적으로 사용되는 부분은 템플릿으로 만들어두고 동적으로 생성되는 부분만 템플릿의 특정 부분에 끼워 넣는 방식으로 작동되는 메서드이다. 템플릿은 왜 사용하는 걸까? 1. 많은 코드를 줄일 수 있다. - 템플릿은 간단한 문법을 사용한다. 따라서 코드를 훨씬 간결하게 짤 수 있다. 2. 유지보수에 용이하다. - 하나의 템플릿을 미리 만들어 놓고 관리하는 것은 수백개의 비슷한 페이지를 관리하는 것보다 훨씬 효율적이다. 3. 재사용성이 높다. - 웹 페이지는 똑같은 디자인의 페이지에 데이터만 바뀌는 경우가 많다. 이럴 때 템플릿을 사용하면 미리 템플릿을 만들어 놓고 데이터만 바꿔가면서 수많은 페이지를 만들어 낼 수 있으므로 효율적이다. 간단히 템플릿을 만들어 보며 개념을 알아보자. in.. 2023. 2. 23.
[Servlet / JSP / SQL] 회원 관리 폼 만들기 (4) - UPDATE(정보 수정) 수정을 누르기전에, member_detail.jsp 19번째 줄을 살펴보자. HTML 삽입 미리보기할 수 없는 소스 서블릿의 memberUpdate.do로 memId 값을 들고간다. MemberController.java 서블릿 역시나 memId 데이터를 받아와 저장하고, 바로 member-mapper로 가서 쿼리를 짜주자. member-mapper.xml 바꿔줄 값이 4개이다. MemberService.java 인터페이스 MemberServiceImpl.java 클래스 //매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성) //매개변수 : 쿼리 실행 시 빈 값을 채울 용도 //1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음 //2. 채워줄 값이 하나일 경우 // 2-1) 채워줄.. 2023. 2. 23.
[Servlet / JSP / SQL] 회원 관리 폼 만들기 (3) - DELETE(회원 삭제) 이번엔 회원 삭제를 하기전에, 상세정보 보기를 먼저 만들어 볼 것이다. member_list.jsp HTML 삽입 미리보기할 수 없는 소스 27번째 줄에있는 태그를 이용해 이름을 클릭하면 상세정보 보기 페이지로 이동하게 만들 것이다. 등록한 이름의 memId가 MemberDTO에 저장한( ${member.memId} ) 아이디를 같이 들고간다. 어디로? member_detail.do MemberController.java 서블릿 member_list.jsp에서 memId 데이터를 보냈으니, getParameter를 사용하여 성공적으로 받아주었다. MemberDTO member 이후 문장은 다시 mapper로 가서 쿼리를 짜주고 돌아오자. member-mapper.xml 오라클 DB에 저장했던 BASIC_.. 2023. 2. 23.
[Oracle / SQL] SQL INSERT, UPDATE, DELETE 테이블에 저장된 데이터에 변화가 생기는 추가, 삭제, 수정등의 쿼리는 실행 후 수정 내용을 확정할지 취소할지 결정지어 줘야한다. 변경 확정 : COMMIT 변경 취소 : ROLLBACK 단, 한번 COMMIT한 데이터는 ROLLBACK이 불가능하다. 먼저 연습할 MEMBER 테이블을 생성해주자. HTML 삽입 미리보기할 수 없는 소스 INSERT (데이터 삽입) --INSERT INTO 테이블명 (컬럼명들....) VALUES (값들....); HTML 삽입 미리보기할 수 없는 소스 데이터를 삽입 후 COMMIT을 해준다. 이후 다시 한번 VALUES(2,'KIMJAVA', 20); 을 넣는데, ROLLBACK;을 진행하였다. ROLLBACK을 하지 않았다면 MEM_NUM의 값이 2가 가진 데이터도 출력.. 2023. 2. 23.
[Servlet / JSP / SQL] 회원 관리 폼 만들기 (2) - INSERT(회원 등록) 이전 포스팅에서 DB연동 후 결과 페이지를 만드는데 까지 해보았다. login_result.jsp result 값으로 받아온 member에 들어있는 id와 pw가 일치하지 않으면 자바스크립트를 이용해 '로그인 실패'를 띄우고, 그렇지 않다면 '로그인 성공'을 띄운다. loginForm.do로 갈 서블릿과 memberList.do로 갈 서블릿을 만들어주자. MemberController.java 서블릿 loginForm.do에서는 단순히 같은 페이지로만 돌아가게끔 구현하였고, memberList.do는 쿼리를 작성한 값을 가져와야한다. 따라서 젤 먼저 쿼리를 쓰러 mapper로 가자. member-mapper.xml select 쿼리는 반드시 resultMap을 가져온다는 것을 다시 한번 명심하자. 쿼리문.. 2023. 2. 22.