본문 바로가기

분류 전체보기520

MyBatis 와 Spring (Boot) 연결 요약 첫번째 방법 참고 : https://hwanii96.tistory.com/423 [ SpringBoot ] MyBatis 프레임워크MyBatis 프레임워크란 ? 데이터베이스와 상호작용하며, 쿼리문을 쉽게 작성하고 실행할 수 있도록 도와주는 프레임워크 이다. MyBatis는 데이터베이스와 자바 객체 간의 매핑을 간단하게 처리 할 수hwanii96.tistory.com [ SpringBoot ] @Mapper 어노테이션을 사용해서 Spring의 루트 컨테이너가 매퍼 인터페이스를 Spring의 빈으로 등록 한다. 그리고, 매퍼 인터페이스와 매퍼 XML 파일과의 연결을 위한 설정을 통해, SQL 작업을 수행 할 수 있도록 하는 방식으로 연결 했다. SpringBoot 에서는 application.properti.. 2023. 9. 29.
[ Spring ] MyBatis 연결 하기 01 개요 지난 프로젝트 에서, 처음에는 JDBC 인터페이스의 preparedStatement 를 사용한 방식의 DAO 였고, 두번째는 JdbcTemplate 템플릿 패턴을 활용한 방식의 DAO 였다. SpringBoot 에서 MyBatis 프레임워크 적용 방법을 공부했기에, 프로젝트에 이를 적용해 보기로 했다. 이 게시글은 SQLSessionTemplate 템플릿 패턴을 활용한 방식으로 MyBatis 와의 연결 하는 방식 이다. 설정 방법1. maven 설정 파일을 사용하는 프로젝트 여서, pom.xml 에 MyBatis 프레임워크 관련 라이브러리를 추가. 본인은 각각 3.5.13 버전과 2.0.7 버전을 사용 했다. 아래의 더보기 에서 다양한 버전을 확인 할 수 있다. 본인에 환경에 맞는 버전을 적용 하면.. 2023. 9. 27.
[ SpringBoot ] MyBatis 동적 쿼리 MyBatis 동적 쿼리 문법 정리- 조건문 (if / choose / when / otherwise) - 조건 특화 엘리먼트 (요소 == 태그) (trim / where / set) - 반복문 (foreach) - 다중 쿼리 (selectKey) 동적 SQL 란 ?MyBatis의 강력한 기능중 하나는 동적 SQL 를 처리하는 방법 이다. 동적 SQL 이란 상황에 따라 다양한 분기 처리를 통해 SQL문을 동적으로 만드는 것 이다. 조건문 (if / choose / when / otherwise) 단일 조건 : 조건이 참일 때 추가될 문장 다중 조건 : , , 조건 1이 참일 때 추가될 문장 조건 1이 거짓이고, 조건 2가 참일 때 추가될 문장 조건 1, 조건 2가 모두 거짓일 때 실행할 문장 조건 특화 .. 2023. 9. 25.
[ SpringBoot ] MyBatis 프레임워크 MyBatis 프레임워크란 ? 데이터베이스와 상호작용하며, 쿼리문을 쉽게 작성하고 실행할 수 있도록 도와주는 프레임워크 이다. MyBatis는 데이터베이스와 자바 객체 간의 매핑을 간단하게 처리 할 수 있도록 도와 준다. MyBatis 프레임워크의 장점 .xml 파일로 쿼리문 관련 설정 및 작성을 하기 때문에, 결합도가 낮아지고, 응집도가 높아지며, 유지 보수가 용이한 프로그래밍 개발을 지향 하게 된다. 왜 ? .xml 파일을 사용 한다는 의미는 JAVA 언어와의 분리를 의미 한다. 따라서, JAVA와 관련성이 없어짐에 따라, 쿼리문을 수정하더라도 컴파일을 다시 할 필요가 없다. MyBatis 설정 하기 1. Spring Starter Project 클릭. 2. 설정 하고, Next 클릭. 3. MyBa.. 2023. 9. 25.
인터페이스 개념 메모 1. FrontController 패턴 기존 FrontController 패턴으로 개발을 했을 때는 (스프링 프레임워크 사용 이전) 필요한 DAO를 직접 이용 했었다. 이것의 단점은 결합도가 높기 때문에 유지 보수에 불리하다는것 이였다. 따라서, Controller 와 DAO 사이에 Service Interface 를 생성 하면, Controller 가 직접적으로 DAO를 사용하는게 아니라, Service가 DAO를 사용하는 방식으로 변경 되므로, 결합도가 낮아지고 유지보수가 유리해진다. 왜그럴까 ? Service 가 Interface 를 멤버 변수 (의존 관계) 로 가지고 있으면, (인터페이스의 다형성) @ 어노테이션으로 어떤 클래스에 설정하는지에 따라서 객체화된 특정 객체를 주입 받을 수 있다. 즉,.. 2023. 9. 21.
[ Spring Boot ] 서비스 레이어와 인터페이스의 장점 참고 : https://hwanii96.tistory.com/329 > 코드의 유지보수가 용이해지는 장점을 갖게 된다. 인터페이스 생성 및 인터페이스를 구현 하기 BoardDAO 클래스는 CRUD == 비즈니스 메서드 가 작성 되어 있는 클래스 이다. 따라서, 메서드 시그니쳐가 정해져 있으므로 인터페이스를 작성해 보려고 한다. 인터페이스를 생성 했으니, 인터페이스를 구현하는 클래스를 작성 해보자. InterfaceBoardDAO 인터페이스를 구현 하고, @Repository 어노테이션을 명시하면 된다. 다음으로, BoardDAO 를 사용하는 주체가 되는 Service 클래스를 작성 해보자. 마찬가지로, 사용하는 비즈니스 메서드의 메서드 시그니쳐가 고정 되어 있기 때문에 인터페이스를 먼저 작성 한다. 그리.. 2023. 9. 21.
@RequestMapping / @GetMapping / @PostMapping @GetMapping 과 @PostMapping 은 @RequestMapping 어노테이션을 상속받은 것들 이다. ================================================================ 1. @RequestMapping 어노테이션의 장점 : 1) 모든 HTTP 요청 메서드에 대한 처리를 하나의 메서드에서 다룰 수 있다. 2) 다양한 요청 메서드를 하나의 메서드에서 처리하고, 동일한 동작을 여러 요청 메서드에 대해 공유할 때 유용 하다. ================================================================ @RequestMapping 어노테이션의 단점 : 1) 코드 가독성이 상대적으로 낮을 수 있고, 요청 메서드에 .. 2023. 9. 20.
HashSet (1) ch11-34 ~ 36 HashSet (1) 11 - 34 HashSet - 순서 X, 중복 X Set 인터페이스를 구현한 대표 클래스는 HashSet 과 TreeSet 이다. 보통 Set을 사용 해야 한다면 HashSet 클래스를 사용 하면 된다. - Set 인터페이스를 구현한 대표적인 컬렉션 클래스 이다. - 순서를 유지하려면 LinkedHashSet 클래스를 사용 하면 된다. - TreeSet 이란 ? >> 범위 검색과 정렬에 유리한 컬렉션 클래스 이다. 범위 ? >> from ~ to 예) 10 ~ 20 하지만, TreeSet은 HashSet 보다는 데이터 추가 또는 삭제에 시간이 더 걸린다는 단점이 있다. 11 - 34 HashSet - 주요 메서드 첫번째는 기본 생성자 이다. 두번째는 지정된 .. 2023. 9. 20.
Comparator & Comparable ch11-30 ~ 33 Comparator & Comparable ch11 - 30 Comparator & Comparable - 객체 정렬에 필요한 메서드 (정렬 기준 제공이 목적) 를 정의한 인터페이스 이다. Comparable : 기본 정렬 기준을 구현 하는데 사용 한다. Comparator : 기본 정렬 기준 외에 다른 기준으로 정렬하고자 할 때 사용 한다. 아래의 이미지는 다음과 같다. 인터페이스 내부의 compare() 또는 compareTo() 메서드를 사용 하면, 반환값이 양수 또는 0 또는 음수가 나오게 된다. 왼쪽이 크면 양수 왼쪽과 오른쪽이 같으면 0 오른쪽이 크면 음수 를 반환 하게 된다. compare() 메서드는 두 객체를 비교 하는 메서드 이고, compareTo() 메서드는 .. 2023. 9. 20.