
[Java] 제네릭과 와일드카드 (상한제한, 하한제한)
제네릭과 와일드카드 제네릭 메소드는 리턴타입 앞에 가 붙는다. 하지만 와일드 카드는 타입매개변수로 를 넣어서 제네릭 메소드와 동일한 기능을 하는 일반 메소드를 만들 수 있다. (이걸 더 권장) 제네릭은 클래스, 메소드 모두 사용 가능! 와일드 카드는 메소드에서만 사용 가능! 와일드카드와 상한제한
제네릭과 와일드카드 제네릭 메소드는 리턴타입 앞에 가 붙는다. 하지만 와일드 카드는 타입매개변수로 를 넣어서 제네릭 메소드와 동일한 기능을 하는 일반 메소드를 만들 수 있다. (이걸 더 권장) 제네릭은 클래스, 메소드 모두 사용 가능! 와일드 카드는 메소드에서만 사용 가능! 와일드카드와 상한제한
제네릭을 사용하는 이유 제네릭을 사용하지 않았을 시 1. 데이터 형변환 해주는 거 너무 불편함!! 2. 틀린 자료형으로 형변환을 해도 런타임오류라서 빨간줄은 그이지 않지만 실행하면 오류가 나서 오류 찾기가 어려움!! 제네릭 사용법 클래스명 -통상적으로 많이 쓰는 타입 매개변수 T : type E : element N : Number K : Key V : Value 제네릭으로 만들어진 클래스를 객체 생성할 때 원하는 타입으로 생성가능! 이렇게 오렌지타입으로 객체를 생성했는데 사과타입을 넣으면 빨간 줄 오류가 표시돼서 오류확인에 용이함!! get()으로 불러왔을 때 형변환도 해줄 필요 없어서 너무 편리함!! 타입 2개 지정 가능!!! 제한된 제네릭 타입인자로 특정 타입만 들어올 수 있도록 지정할 수 있음 상..
가상 테이블 VIEW 1. 데이터를 저장하고 있지 않지만 쿼리 작업은 가능. 2. 민감한 데이터의 조회, 변경 못하게 하려고 3. 복잡한 조회 쿼리(조인, 서브쿼리)를 단순화 뷰 생성 권한 부여 뷰를 만들 수 있도록 관리자에서 해당 계정에 대한 권한 부여 GRANT CREATE VIEW TO 계정명; 뷰 생성 CREATE VIEW 뷰이름 AS 조회쿼리; 뷰 생성 추천 쿼리 CREATE OR REPLACE VIEW 뷰이름 AS 조회쿼리; 뷰는 변경이 수시로 일어나기 때문에 OR REPLACE를 넣어주면 컬럼을 추가할 때 뷰 생성 쿼리에서 그냥 추가해서 실행시켜주면 됨 조인 테이블로 만든 뷰 읽기 전용 뷰 생성 CREATE VIEW 뷰이름 AS 조회쿼리 WITH READ ONLY; 보통 뷰에 데이터를 INS..
RANK 동일 순위의 레코드 존재 시 후순위는 넘어감 (1위, 1위, 3위) DENSE_RANK 동일 순위 후순위로 안넘김(1위, 1위, 2위) ROW_NUMBER 동일 순위를 연속 번호로 부여 (1위, 2위, 3위) SELECT RANK() OVER( PARTITION BY 컬럼 ORDER BY 컬럼 ) FROM 테이블; : PARTITION BY는 동일 순위에 대한 정렬 설정 ex) SELECT 이름, 수학, DENSE_RANK() OVER (ORDER BY 수학 DESC) FROM 점수 ORDER BY 수학 DESC;