Study/Java
-
[Java] Enum 클래스Study/Java 2021. 5. 16. 17:06
열거체 (enumeration type) java 언어 열거 유형의 공통 기본 클래스 집합의 유형 또는 맵의 키 유형으로 열거 유형을 사용가능 E: 열거형 하위 클래스 java 1.5 이후 Enum 클래스는 모든 자바 열거체의 공동된 조상 클래스. Enum 클래스에는 열거체를 조작하기 위한 다양한 메소드가 포함되어 있음 장점 1. 열거체를 비교할 때 실제 값뿐만 아니라 타입까지도 체크 가능 2. 열거체의 상수값이 재정의되더라도 다시 컴파일할 필요가 없음 사용법 클래스 생성 1) 우클릭 > New > Enum 2) 우클릭 > New > Other... > Enum 문법 // 선언 enum 열거체이름 { 상수1이름 , 상수2이름 , ... } // 사용법 열거체이름.상수이름 예시 // Enum 클래스 생성 ..
-
[Java] 추상클래스(Abstract class)Study/Java 2021. 4. 25. 16:09
추상클래스란? 자바에서는 하나 이상의 추상 메소드를 포함하는 클래스 클래스의 공통적인 변수, 메소드를 뽑아 선언한 클래스 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가지는 메소드의 집합 => 반드시 사용해야 하는 메소드를 추상클래스에 선언해두면, 이 추상 클래스를 상속받는 모든 클래스에서는 이 추상 메소드를 반드시 재정의 해야함 하나의 부모클래스만 상속 받을 수 있음 추상클래스를 사용하는 이유 1. 상속을 강제하기 위함 부모클래스에서는 메소드의 시그니처만 정의해놓구 실제 동작방법은 자식 클래스가 한다. 2. 공통된 필드와 메소드 통일 여러 클래스에서 동시에 사용하는 변수와 메소드를 뽑아 부모클래스에 정의해둔다. 중복코드를 줄이고 필드와 메소드 이름이 통일되므로 유지보수성을 높일 수 있음 3. 구현 ..
-
[MyBatis] 동적 쿼리 trim 사용방법Study/Java 2021. 1. 4. 09:52
trim 동적 SQL을 사용하기 위해 사용되는 문법 보통 if문을 썼을 경우 함께 사용된다. 속성/문법 prefix: 문 안의 쿼리 가장 앞에 붙여줌 쿼리문 prefixOverrides: 문 안의 쿼리 가장 앞에 해당하는 문자들이 있으면 자동으로 지워줌 쿼리문 suffix: 문 안의 쿼리 가장 뒤에 붙여줌 쿼리문 suffixOverrides: 문 안의 쿼리 가장 뒤에 해당하는 문자들이 있으면 자동으로 지워줌 쿼리문 예제 prefix, prefixOverrides 사용 SELECT * FROM EMPLOYEES AND NAME = #{name} OR DEPT = #{dept} OR SAL = #{sal} suffix, sufiixOverrides 사용 INSERT INTO EMPLOYEES ( NAME, ..
-
[Maven] Eclipse에서 Maven 프로젝트 생성 방법Study/Java 2021. 1. 2. 20:17
1. 메뉴 > File > new > Project... > Maven Project 선택 >Next 2. 저장위치 설정 Use default Workspace location 선택(기본값) > Next 3. Maven 템플릿 maven-archetype-webapp 선택 4. Maven 기본 정보 입력 Group Id: 도메인 (프로젝트마다 접근할 수 있는 고유한 이름으로 설정. 보통 패키지 네이밍룰(도메인 뒤집기)을 따름. 이후 원하는만큼 하위 그룹 생성 가능. 프로젝트의 구조를 밝히는 것이 좋음) Artifact Id: 프로젝트 명 (jar 파일에서 버전 정보를 뺀 이름. 자유롭게 가능. 소문자 사용. 특수문자 사용하지 않음) 5. 프로젝트 생성 빨간색으로 에러가 생긴다. index.jsp 파일에 ..
-
[MyBatis] Oracle 부적합한 열유형 null 처리방법Study/Java 2020. 12. 31. 18:57
mybatis-config.xml 또는 context-sqlMap.xml 프로퍼티 네임이 configLocation인 value값에 보면 configLocation경로가 있음 저 경로 xml에 들어가 configuration 태그 아래 settings 이라는 태그가 있는지 확인하고 없을 경우 settings를 추가하여 아래처럼 설정하고 있을 경우는 setting을 추가해주면 된다. 매 가이드 // 없는 경우 // 있는 경우 jdbcType=VARCHAR 사용 INSERT INTO [table_name] ( id , name , phone ) VALUES ( #{id} , #{name} , #{phone, jdbcType=VARCHAR} ) 값이 null일 경우 null처리가 된다. 조건절 if문 사용 I..
-
[MyBatis - Error] java.lang.IllegalArgumentException : Mapped Statements collection does not contain valueStudy/Java 2020. 12. 22. 17:39
에러메세지 java.lang.IllegalArgumentException : Mapped Statements collection does not contain value 원인 1. mapper Id가 다른 경우 // mapper 파일 // java파일 // DAO 파일에서 부르는 mapper 파일의 id 2. Parameter와 been의 필드명이 다른 경우 3. mapper파일에 정의된 네임스페이스와 mapper파일에 접근하는 java파일에서 호출하는 네임스페이스가 다를 경우 4. MyBatis config 파일에 mapper가 정의되어 있지 않거나 스펠링이 틀린경우 5. mapper에 정의된 네임스페이스 명칭이 같은 application 내에 중복될 경우 참고 더보기 tistory, "mapper E..