2018/05 7

[MyBatis] foreach

http://huskdoll.tistory.com/507 방법은 Map을 선언시 로 선언하고 Object에 list를 넣어주고 query 부분에서 리스트를 foreach 돌려 사용하면 됩니다. DAO 부분에서 책 정보를 가져오도록 작성1234567891011121314151617public List getBooksInfo() { Map param = new HashMap(); param.put("id", "1"); //#{id}에 셋팅 param.put("name", "victor"); //#{name}에 셋팅 List codeList = new ArrayList(); codeList.add("01"); //in 조건에 넣을 정보 codeList.add("05"); param.put("code_list"..

Database 2018.05.25

[MySql] DISTINCT , GROUP BY

DISTINCT의 결과를 정렬된 결과가 아니지만, GROUP BY는 정렬된 결과를 보내준다. GROUP BY의 작업을 크게 "그룹핑" + "정렬"로 나누어서 본다면, DISTINCT는 "그룹핑" 작업만 수행하고 "정렬" 작업은 수행하지 않는 것이다. 그런데, 여기서 "정렬"은 "그룹핑" 과정의 산물이 아닌 부가적인 작업이다. 가끔 어떤 사용자는 DISTINCT가 마치 함수인 것처럼 (괄호를 사용하여) 아래와 같이 사용을 하는데 만약 fd1 컬럼은 unique 값, fd2는 전체 값을 원한다면 절대 그 결과를 얻을 수 없다. SELECT DISTINCT(fd1), fd2 FROM tab; SELECT 문장에 DISTINCT라는 키워드가 있으면, MySQL은 SELECT되는 모든 컬럼(튜플)들에 대해서 DI..

Database 2018.05.10

[MySql] INDEX

인덱스 컬럼 기준먼저 말씀드릴 것은 1개의 컬럼만 인덱스를 걸어야 한다면, 해당 컬럼은 카디널리티(Cardinality)가 가장 높은 것을 잡아야 한다는 점입니다.카디널리티(Cardinality)란 해당 컬럼의 중복된 수치를 나타냅니다. 예를 들어 성별, 학년 등은 카디널리티가 낮다고 얘기합니다. 반대로 주민등록번호, 계좌번호 등은 카디널리티가 높다고 얘기합니다.인덱스로 최대한 효율을 뽑아내려면, 해당 인덱스로 많은 부분을 걸러내야 하기 때문입니다. 만약 성별을 인덱스로 잡는다면, 남/녀 중 하나를 선택하기 때문에 인덱스를 통해 50%밖에 걸러내지 못합니다. 하지만 주민등록번호나 계좌번호 같은 경우엔 인덱스를 통해 데이터의 대부분을 걸러내기 때문에 빠르게 검색이 가능합니다. 여러 컬럼으로 인덱스를 잡는다..

Database 2018.05.08

[JAVA] enum (last update : 2022.01.13 )

enum이란? 관련있는 상수들의 집합. 어떤 클래스가 상수만으로 작성되어 있으면 반드시 class로 선언할 필요가 없다. 이때 class대신 enum이라고 선언하면 "객체는 상수의 집합이다"라는 것을 명시적으로 나타냄 enum = enumeration 코드가 단순해지며 가독성이 좋다. 인스턴스 생성과 상속을 방지한다. 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 나타낼수 있다. enum의 생성자는 private, 고정된 상수들의 집합으로 런타입이 아닌 컴파일타임에 모든 값을 알고있어야한다. 그래야지 다른 패키지나 클래스에서 enum 타입에 접근해서 어떤 값을 줄지 정할 수 있다. 결국 enum 타입은 인스턴스 생성을 제어하며 싱글톤을 일반화한다. enum에는 메서드를 작성할 수 있다..

JAVA 2018.05.04
반응형