이슈내용 group_concat을 사용해서 결과값을 리스트로 조회해오는 mybatis 쿼리에서 아래와 같은 에러가 발생했다. java.lang.UnsupportedOperationException 원인 해당 오류는 mapper 인터페이스의 리턴 타입과 xml의 구현체의 resultType이 일치하지 않아서 발생한 오류로, Mapper 인터페이스에는 아래와 같이 List 형태로 받게 지정해놨는데, xml의 쿼리 resultType으로 String 타입이 아닌 list라고 지정한 것이 원인이었다. mybatis에서 리턴값을 List로 받기 위해서는 resultType에는 기본형타입만 지정하고, mapper 인터페이스 부분에 리턴값으로 List 형태를 지정해야 한다! ✅ Mapper ✅ XML 해결방안 아래와..
분류 전체보기
개요 회사 업무 중 Spring Boot 서버에서 2개의 서로 다른 DB에 접근해야 하는 업무가 생겨 다중 데이터베이스 환경을 구축하게 되었다. 다중 데이터베이스 접근 환경 구축 순서는 순서는 아래와 같다. 1. 패키지 구조 변경 (Mapper 인터페이스, xml파일 패키지로 감싸기) 2. 서버 설정파일에 DB 연결정보 작성 3. Config 파일 생성 및 수정 프로젝트 패키지 구조 변경 다중 DB를 사용할 때는 보통 Oracle, Mysql 과 같이 DBMS가 다른 케이스에 사용하기 때문에 쿼리 파일을 별도로 관리하는 것이 좋다 (패키지도 나누는 것이 관리하기 편하다) 아래와 같이 Mapper 인터페이스 파일을 관리하는 패키지와 실제 구현체인 xml 쿼리파일을 관리하는 패키지를 두개로 나눈다 서버 설정..
개요 평소 회사에서 MyBatis를 주로 사용해 업무를 하는데, 자세한 동작 원리가 궁금해져서 공부한 내용을 정리하고자 한다. MyBatis (Persistence Framework) 목차 0. Persistence Framework 1. MyBatis란 ? 2. Mybatis 동작 원리 3. Mybatis를 통한 CRUD 4. 동적 쿼리 Persistence Framework Mybatis는 Persistence Framework 기술 중 하나인데, Mybatis에 대해 들어가기 전 Persistence Framework이 무엇인지 간단히 알아보자 ✅ Persistence란 ? Persistence란 영속성 이란 뜻으로 프로그램이 종료되어도 데이터 상태가 유지되는 것을 말한다. 프로그램에서 데이터를 저..
upsert문 업무 진행할때 특정 데이터를 insert하거나 update 하는 로직을 짜는 경우가 많다. 이때 테이블에 레코드가 존재하면 update문을, 존재하지 않으면 insert문을 수행하는 로직으로 진행하는데 이러면 코드가 길어지고, 쿼리를 2번 수행한다는 문제가 있다. 기존 방식 이런 문제를 해결할수 있는게 UPSERT 방식이다. 이름에서 유추할수 있듯 데이터가 있으면 Update문 , 없으면 Insert문을 수행하는 방식이다. 사용 방법 사용 방법은 insert문 뒤에 ON DUPLICATE KEY UPDATE를 붙이고 UPDATE문 SET절의 구문을 적어주면 된다. INSERT INTO 테이블명 ( 컬럼명 , 컬럼명 , … ) VALUES ( 값 , 값 , … ) ON DUPLICATE KE..
row_number() 조회된 레코드들의 번호 매김을 하고 싶은 경우 mysql에서 제공하는 row_number() 함수를 사용하면 원하는 기준대로 순서 매김할 수 있다. row_number() over ( order by 컬럼 ) : 컬럼 기준 오름차순/내림차순으로 번호를 매긴다. row_number() over ( partition by 컬럼) : 컬럼 기준으로 그룹핑 한 뒤 그룹 별로 번호를 매긴다. 사용 방법 예시 ✅ 테스트 데이터 ✅ 전체 레코드를 순서대로 번호매기기 ✅ 특정 컬럼 기준으로 그룹핑 한 뒤 그룹 내에서 번호를 매기기 (1) ✅ 특정 컬럼 기준으로 그룹핑 한 뒤 그룹 내에서 번호를 매기기 (2) 그룹핑된 그룹 내에서 특정 컬럼 기준으로 순서 매기기 (order by 추가)
개요 이번 글에서는 Window OS에 Oracle 11g 환경을 구축하는 방법에 대해 설명합니다. 따라하기 전 오라클 계정이 필요하니 참고 바랍니다 Oracle 11g 설치 1. 아래 주소에서 OS에 맞는 11g Release 2 Express Edition을 클릭한다. 스크롤 내리면 최 하단에 위치해있다. - url : https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 2. 아래의 설치 파일 클릭하여 다운로드 3. 설치된 경로로 이동하여 관리자 권한으로 setup.exe를 클릭한다. 관리자 권한으로 실행해야 폴더 권한문제로 에러가 발생하는 것을 방지할 수 있다. 4. 설치 순서대로 설치를 진행해준다...