전체 글 177

JSP) 모델2 방식 - FrontController 컨트롤러 서블릿 만들기

model2 방식에서 FrontController는 요청을 받아서 DB연결이 필요없으면 → 바로 View로 포워딩하고 DB연결이 필요하면 → Action클래스(Controller)를 호출하여 DAO가 호출되고 DB로직을 처리한다. 1. 서블릿 파일 만들기 서블릿은 자바 + HTTP객체다. 따라서 HttpServlet을 상속받아야한다. public class FrontController extends HttpServlet { } HttpServlet에서 doGet, doPost를 오버라이딩 한다. (ctrl + alt + s + v) @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletExc..

Back-end/JSP 2022.03.16

Oracle DB) 제약 조건: Primary Key, Foreign key, Unique, Not Null, Check

제약조건이란? 데이터의 무결성을 지키기 위한 제한된 조건. 특정 데이터를 입력 할 때 무조건 입력되는 것이 아닌, 지정한 조건을 만족했을 때 입력되도록 제약한다. 종류: Primary key, Foreign key, Unique, Not Null, Check 제약조건 선언 시기 1) 데이블 생성 시: create구문으로 테이블 선언 시. 2) 테이블 생성 후: alter 구문으로 수정한다. 제약조건명 사용자(개발자)가 지정. 고유하고 의미있는 이름 부여. 권장 이름: 테이블명의 약자_컬럼명 약자_제약조건 유형의약자 ex) emp_empid_pk emp_email_uk dept_dname_nn dept_sal_f => 한글자씩으로만 줄여써도된다. 잘 알아볼 수 있도록 편리하게! 제약조건명은 생략할수 있다...

Database/Oracle 2022.03.15

Oracle DB) 데이터 정의어(DDL) - CREATE 테이블 생성, 복사

DQL 데이터 질의어 : select DML 데이터 조작어 : insert, update, delete DDL 데이터 정의어 : create, alter, drop, truncate **DDL은 자동으로 commit이 되서 좀 더 신중하게 작성하는것이 좋다. DB안에 존재하는 객체 종류 Table, View, Sequence, Index, Synonym 테이블명과 컬럼명 이름 규칙 - 문자로 시작한다. - 문자, 숫자, 특수문자(_, #, $) 혼합 가능 1. 테이블 생성 CREATE 생성 방법1) 직접 생성 CREATE TABLE 테이블명 ( 컬럼명 테이터타입(컬럼사이즈), 컬럼명 데이터타입(컬럼사이즈), ...... ); 생성 방법2) 서브쿼리로 생성 CREATE TABLE 테이블명 AS SELECT..

Database/Oracle 2022.03.15

JAVA) 예외 처리 try~catch, throws, 사용자 정의 예외

try ~ catch ~ finally try { 예외 발생 가능성이 있는 코드 } catch(예외 종류) { 해당 예외 발생시 실행할 코드 } finally { 예외가 발생하든 안하든 무조건 실행할 코드 } if ~ else if ~ else 와 비슷하다. try 문에 예외가 발생할 수 있는 코드를 넣고, 예외가 발생할 경우 대처 방안을 catch에 넣는다. 각 예외 종류에 따라 다르게 처리하고 싶으면 else if() 처럼 catch()를 여러 개 둘 수 있다. 여기까지는 if문과 똑같지만 마지막이 다르다. if문의 경우, 앞에서 조건이 해당되는경우 마지막 else문은 실행하지 않지만, try문의 finally는 앞에서 실행이 다 된 이후에 무조건 finally문을 실행한다. catch문에는 예외발생..

JAVA) 오류와 예외, 예외, 오류 메세지 보는 방법

1. 오류와 예외 1) 오류(error) 시스템적인 오류 -> 프로그램에서 제어 불가능. ex) 메모리 오버플로우, 메모리 부족 등 오류 종류 - 컴파일 오류(compile error): 문법적 오류. - 실행오류(runtime error): 프로그램의 의도치 않은 동작(=bug), 중지되는 경우. 2) 예외(Exception) 개발자가 구현한 로직안에서 발생 -> 프로그램으로 제어 가능. 발생할 상황을 미리 예측해서 처리할 수 있다. ex) 배열 요소를 출력하려는데 값이 없는 경우, 데이터 타입이 맞지 않는 경우 등 예외 종류 Compile Checked Exception: 컴파일 전에 알 수 있는 예외. ex) IOException, ClassNotFoundException 등등 Compile Unc..

JSP) DB 커넥션 풀(Connection Pool)

1. 커넥션 풀 JDBC를 통해 DB와 연결할때 DriveManager클래스의 getConnection()메서드를 통해 연결 정보 객체(Conection)을 가져와서 사용한다. 이 Connection을 매번 가져오는게 아니고, 미리 가져와서 저장하여 필요할때 가져가서 쓰고 작업이 끝아면 반환하며 사용할때 사용하는게 커넥션 풀이다. 즉, 커넥션 풀은 커넥션 정보를 저장하는 것을 의미한다. DB환경설정과 연결정보 등을 xml이나 속성관리 파일에 정의해두고 그 정보를 사용한다. 웹을 만들때 커넥션 풀 사용은 필수다. 안쓰면 서버 무조건 나간다..ㅎㅎ 2. 커넥션 풀 사용 이유 사용자가 웹 사이트를 요청할때마다 Connection객체를 새로 만들면 메모리 소모가 많아 매우 비효율적이다. 커넥션 풀을 생성해서 그..

Back-end/JSP 2022.03.14

JAVA) 인터페이스(interface) 정의, 사용 이유

인터페이스란? 클래스들이 구현해야 하는 동작을을 강제한다. 추상화클래스에서 추상메서드로 구현한것은 상속받은 클래스가 무조건 오버라이딩 해야했던 것처럼 인터페이스가 가진 모든 메서드는 구현받은 클래스가 모두 구현해야한다. 즉, 그 안의 모든 메서드를 전부 복붙해서 가져와야 한다는것이다. 인터페이스는 기능의 틀을 짜놓고 가져아서 구현하게 하는 것에 목적이 있기때문에 외부에서 잘 가져갈 수있도록 인터페이스의 멤버는 public 접근제한자만 쓴다. (default, static제외) 인터페이스는 정말 강력한 규제다. 추상화는 추상메서드만 가져오면 됐지만, 인터페이스는 모두, 하나도 남김없이 다 가져와서 구현해야한다. 그런데 자바 8부터는 강력한 규제가 완화됐다. 자바 8부터 달라진 interface 이전에는 인..

JSP) JDBC 설치하여 JSP와 DB연결 및 SQL문 실행하기

JDBC 자바와 DBMS를 연결시켜주는 API. SQL프롬프트를 사용하지 않고 자바 프로그램에서 SQL문을 써서 DB작업을 할 수 있도록 한다. DBMS종류에 맞는 JDBC드라이버를 설치해서 사용한다. 1. JDBC 드라이버 다운받아 설치하기. 나는 MySQL을 사용하므로 MySQL JDBC인 Connector j 를 설치해야한다. (자바프로그램에서 MySQL을 사용하려면 Connector j 필요) 전체 설치가 아닌 jar파일만 필요하므로 Microsoft Window가 아닌, Platform Independent 를 선택한다. 윈도우 환경이면 .zip을 다운받고, 그 외에는 .tar를 다운받는다. https://dev.mysql.com/downloads/connector/j/ 다운받은 폴더안의 .ja..

Back-end/JSP 2022.03.03

Oracle DB) 단일행 함수 - 문자함수(자르기, 연결하기 등등)

단일행 문자 함수: 문자 입력을 받아 문자나 숫자값을 반환한다. 1. 대소문자 변환함수 대보문자 변환은 보통 문자열을 비교해서 찾을 때 많이 사용한다. a로 시작하는 사람을 찾고싶은데 oracle db는 대소문자를 구분하기때문에 LIKE = 'a%' 로 찾으면 대문자로 시작하는 사람은 안나온다. 따라서 DB에 들어있는 값을 변환해서 찾으면 모든 경우를 다 찾을 수 있다. lower() 소문자로 변환 upper() 대문자로 변환 INITCAP() 맨 앞글자만 대문자고 나머지는 소문자 select emp_name from emps where LOWER(emp_name) = 'apple'; 2. 문자조작 함수 1) concat(a, b) : 두 인수를 연결해서 하나의 문자열로 반환. select concat(..

Database/Oracle 2022.03.02

Oracle DB) SELECT 연습

1. 중복제거 연습 EMPLOYEES 테이블로부터 사원들이 담당하고 있는 업무(job_id) 리스트를 중 복없이 출력하는 구문을 작성하시오. select distinct job_id from employees; 2. Alias 연습 employees 테이블로부터 employee_id, last_name, job_id, hire_date를 출력하되 다음과 같은 컬럼명으로 재명명하여 출력하는 구문을 작성하시오. select employee_id "Emp#", last_name "Employee", job_id "Job", hire_date "Hire Date" from employees; 3. 리터럴 문자 넣기 연습 employees 테이블로부터 last_name과 job_id를 이어서 출력하되 중간에 쉼표..

Database/Oracle 2022.03.02
반응형