
회사에서 mybatis를 사용하는데 평소에도 bulk 쿼리를 통한 insert, update, delete 사용을 하였는데 내용을 애매하게 숙지하고 있어서 오늘 정리를 해봅니다. 먼저 mybatis 에서는 foreach를 통하여 값들을 반복해서 작업을 할 수 있는데, 쿼리문을 여러번 호출하여 작업을 하는것이 아닌 한번의 쿼리에서 반복된 작업을 할 수 있어 유용하게 사용할 수 있습니다. 1. Mybatis foreach 개념 아래는 mybatis foreach 에서 사용하는 개념입니다. 이 개념을 정확히 숙지하고 있어야 foreach 문을 정확히 사용가능합니다. - collection : 전달받은 인자, List나 Array 형태만 가능 - item : 전달받은 인자값을 alias 명으로 대체 - open..

static 이점 - static 키워드를 붙이면 자바는 메모리 할당을 딱 한번만 하게 되어 메모리 사용에 이점 - final static 사용시 한번 설정하면 값 변경을 할수 없음. 변경시 오류발생 static 예제 class Counter { static int count = 0; Counter() { count++; // count는 더이상 객체변수가 아니므로 this를 제거하는 것이 좋다. System.out.println(count); // this 제거 } } public class Sample { public static void main(String[] args) { Counter c1 = new Counter(); Counter c2 = new Counter(); } } - count 변..

추상클래스 - 인터페이스의 역할도 하면서 클래스의 기능도 가지고 있는 자바의 돌연변이 같은 클래스 - 추상클래스를 만들기 위해서는 class 앞에 abstract 라고 표기 - 메서드에도 역시 abstract를 붙여야함 - abstract 클래스를 상속하는 클래스에서 해당 abstract 메서드를 구현해야만함 인터페이스와 추상 클래스의 차이 자바8 버전부터 인터페이스에 default 메서드가 추가되어 추상 클래스와의 차이점이 살짝 모호해졌다. 하지만 추상 클래스는 인터페이스와는 달리 일반 클래스처럼 객체변수, 생성자, private 메서드 등을 가질 수 있다.

생성자 - 메서드명이 클래스명과 동일하고 리턴 자료형을 정의하지 않는 메서드 생성자 규칙 클래스명과 메서드명이 동일. 리턴타입을 정의하지 않음. (void도 사용하지 않음) 기본 생성자 - 생성자의 입력 항목이 없고 생성자 내부에 아무 내용이 없는 위와 같은 생성자 - 클래스에 생성자가 하나도 없다면 컴파일러는 자동으로 위와같은 디폴트 생성자를 추가 - 사용자가 작성한 생성자가 하나라도 구현되어 있다면 컴파일러는 디폴트 생성자를 추가하지 않음 class Sample extends Object { Sample() { } void test() { System.out.println(this.test + " zzz"); } }

IS-A 관계 - 자식 클래스의 객체는 부모 클래스의 자료형인 것처럼 사용할 수 있음 - Animal dog = new Dog(); // Dog is a Animal 상속 메서드 우선순위 class Animal { String name; void setName(String name) { this.name = name; } } class Dog extends Animal { void sleep() { System.out.println(this.name + " zzz"); } } class HouseDog extends Dog { void sleep() { System.out.println(this.name + " zzz in house"); } } public class Sample { public sta..

메서드 - 클래스 내의 함수를 메서드 - 자바에서 사용되는 함수의 정확한 명칭은 메서드 메서드 사용이유 - 여러 번 반복해서 사용된다는 것은 언제고 또다시 사용할 만한 가치가 있는 부분이라는 뜻 public class Sample { int sum(int a, int b) { return a + b; } public static void main(String[] args) { int a = 3; int b = 4; Sample sample = new Sample(); int c = sample.sum(a, b); System.out.println(c); } } // Sample sample = new Sample()처럼 자기 자신의 객체를 생성 // 작성한 클래스를 단독으로 실행시켜 테스트할 때 자주 사..

final - 자료형에 값을 단 한번만 설정할수 있게 강제하는 키워드 - 값을 한번 설정하면 그 값을 다시 설정할 수 없음 - 리스트의 경우도 final로 선언시 재할당은 불가능 import java.util.ArrayList; import java.util.Arrays; public class Sample { public static void main(String[] args) { final ArrayList a = new ArrayList(Arrays.asList("a", "b")); a = new ArrayList(Arrays.asList("c", "d")); // 컴파일 에러 발생 } }

Enum - 서로 관련이 있는 여러 개의 상수 집합을 정의할 때 사용하는 자료형 Enum 예시 - N개의 음식을 판매시 Enum 상수집합 만들수 있음 enum FoodType { 후라이드, 양념, 간장 } - 사용방법 public class Sample { enum FoodType { 후라이드, 양념, 간장 }; public static void main(String[] args) { System.out.println(CoffeeType.후라이드); // 후라이드 출력 System.out.println(CoffeeType.양념); // 양념 출력 System.out.println(CoffeeType.간장); // 간장 출력 } } Enum 이 필요한 이유 - 코드의 명확성을 위해 - 잘못된 값을 사용함으..

StringBuffer - 문자열을 추가하거나 변경 할 때 주로 사용하는 자료형 append StringBuffer sb = new StringBuffer(); // StringBuffer 객체 sb 생성 sb.append("hello"); String result = sb.toString(); System.out.println(result); // "hello" 출력 - append 메서드를 사용하여 계속해서 문자열을 추가해 나갈 수 있음 - toString() 메서드를 이용하여 String 자료형으로 변경할 수 있음 - 한번 생성된 값을 언제든지 수정할 수 있음 - new StringBuffer() 로 객체를 생성하는 것은 일반 String을 사용하는 것보다 메모리 사용량도 많고 속도도 느림 - 문자..

원시 자료형 -int, long, double, float, boolean, char 자료형을 원시(primitive) 자료형 이라고 부름 원시 자료형의 Wrapper 클래스 int Integer long Long double Double float Float boolean Boolean char Char split - 문자열을 특정 구분자로 나누어 문자열 배열로 리턴하는 메서드 String a = "a:b:c:d"; String[] result = a.split(":"); // result는 {"a", "b", "c", "d"}
- Total
- Today
- Yesterday
- ubuntu
- xshell
- build.gradle
- dockerfile
- docker-compose
- Singleton
- WebService
- 의존성주입
- aws
- 순열
- docker container
- docker registry
- Settings
- DockerHub
- yml
- VirtualMachine
- VitualBox
- mybatis
- Linux
- 단위테스트코드
- Private Repository
- netword
- docker
- containerstorage
- bulk
- 프로그래머스
- IntelliJ
- CentOS
- springboot
- container
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |