분류 전체보기298 [MyBatis] SpringBoot MyBatis 쿼리 로그 설정하기 의존성(dependency) 추가 implementation "org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16" 프로퍼티 파일 추가 파일 : log4jdbc.log4j2.properties 경로 : src/main/resources log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator log4jdbc.dump.sql.maxlinelength=0 datasource 설정 설정 파일 : application.yml driver-class-name 추가 jdbc url 변경 : "log4jdbc:" 추가 spring: datasource: driver-class-name: net.s.. Database/MyBatis 2022. 10. 24. [IntelliJ] 프로퍼티 파일 인코딩 설정하기 IntelliJ (혹은 Eclipse) 에서 프로퍼티(properties) 파일에 한글을 작성을 할 때 "ë¹ì© ê´ë¦¬" 와 같은 괴상한 문자가 표출된다거나, 한글을 작성해서 Git에 반영을 했는데 "???" 로 표출이 되는 경우가 있다. 이는 당연히 인코딩의 문제인데, workspace 인코딩을 UTF-8 로 설정해도 프로퍼티 파일의 한글이 깨지는 경우가 있다. 확장자가 properties 파일을 따로 인코딩 설정을 해주어야한다. IntelliJ IDEA properties Encoding 설정 File - Settings - Editor - File Encodings 설정 창 들어가기 Properties Files (*.properties) 의 Default encoding for prop.. IDE/IntelliJ 2022. 10. 21. [Lombok] 자주 사용되는 Lombok Annotation 기능정리 먼저 자바 라이브러리 Lombok 다운로드 및 적용방법은 다음 게시글을 참고하자. Java 필수 라이브러리 Lombok 사용, 적용방법 Java 필수 라이브러리 Lombok 사용, 적용방법 Lombok 라이브러리는 VO(Value Object) 나 DTO(Data Transfer Object) 생성 시 혁신적으로 코드를 줄여주는 라이브러리 입니다. 얼마나 혁신적으로 코드를 줄이는지.. aljjabaegi.tistory.com @Getter, @Setter 필드에 @Getter/@Setter 을 붙이면, 해당 필드에 대한 기본 getter/setter 메소드를 생성해준다. 접근 제한자 AccessLevel @Getter/@Setter 에서의 접근 제한자 설정을 할 수 있다. 만약 생성되는 getter/se.. JVM/Java 2022. 9. 4. 자바의 빌드 시스템, Gradle Build와 IntelliJ Build 컴파일과 빌드 요즘에는 IDE가 워낙 좋아져 컴파일과 빌드의 차이를 모르는 경우가 많다.(=나) 왜냐하면 대부분 툴에서 그 둘을 동시에 Run 하나로 퉁치기 때문이다. 컴파일 : 소스의 문법을 분석해 기계어로 번역, 자바의 경우 JVM(Java Virtual Machine)에서 실행 가능한 바이트코드 형태의 클래스 파일이 생성된다. 링크 : 소스 파일이 여러 개 생성되고, 소스파일에서 각 함수를 호출하는 경우가 있으므로, 연결작업을 해주는 것을 링크라 한다. 빌드 : 빌드는 컴파일이 포함된 일종의 과정으로, 프로그래밍 된 코드를 컴파일하고 실행 가능한 결과물로 만드는 과정을 칭한다. 컴파일과 링크가 빌드 안에 포함되는 개념이라 볼 수 있다. 자바의 빌드 시스템 Maven Gradle IntelliJ Ma.. IDE/IntelliJ 2022. 9. 1. [PostgreSQL] ARRAY_AGG, ARRAY_TO_STRING 함수 사용하기 (여러 행을 한 행으로) 오늘 살펴볼 POSTGRESQL의 ARRAY_AGG 함수는 ORACLE의 LISTAGG 와 같은 집계 함수라고 생각하면 된다. LISTAGG 는 ORDER BY 표현식에 따라 쿼리 내 각 그룹의 행 순서를 지정해 값을 연결하여 하나의 문자열로 가져온다. 자세한 내용은 다음 게시글을 참고하자. [Oracle] LISTAGG WITHIN GROUP 문 LISTAGG 구문 SELECT LISTAGG (컬럼명, 구분기호) WITHIN GROUP (ORDER BY 정렬기준컬럼) FROM 테이블명 예제 다음 테이블로 사용방법을 살펴보자 동일한 MSD_ID의 값의 LINK_ORG 값을 하나의 컬럼으로 가져오고.. haenny.tistory.com 예제로 이해하기 컬러와 이름의 필드가 있는 데이터를 컬러 별로 묶어서 .. Database/SQL 2022. 8. 17. [Java] 객체 매핑 라이브러리 ModelMapper 살펴보자 ModelMapper ? 서로 다른 클래스의 값을 한 번에 복사하게 도와주는 라이브러리로, 어떤 Object (Source Object) 에 있는 필드 값들을 자동으로 원하는 Object (Destination Object) 에 매핑 시켜주는 라이브러리다. ModelMapper 공식 문서 주로 DTO와 같은 클래스로 데이터를 받은 후 원하는 클래스(Entity)에 넣어줄 때, Getter/Setter를 이용해 필드를 복사/붙여넣기하는 작업을 거친다. 이 때, 매핑해야할 필드가 다른 경우도 빈번하다. 즉, 다른 모델의 Object를 매핑해줘야하는 작업이 발생할 수 있다. 이런 단점들을 해결하기 위한 라이브러리이다. 세팅 의존성 추가 build.gradle implementation 'org.modelmap.. JVM/Java 2022. 8. 17. [Java] Java Stream 활용하여 두 개의 List 객체 비교하기 Stream. -Match 메소드 예제 allMatch() : 모든 요소들이 매개 값(Predicate)로 주어진 조건을 만족하는지 조사 anyMatch() : 최소한 한 개의 요소가 주어진 조건에 만족하는 지 조사 noneMatch() : 모든 요소들이 주어진 조건을 만족하지 않는지 조사 class Test { public static void main(String[] args) { int[] intArray = {2, 4, 6}; boolean allResult = Arrays.stream(intArray).allMatch(a -> a % 2 == 0); boolean anyResult = Arrays.stream(intArray).anyMatch(a -> a % 2 == 0); boolean non.. JVM/Java 2022. 8. 16. [JPA] 기본 키 전략과 Entity Custom ID Generator 구현하기 JPA 기본키 생성 전략 관계형 데이터베이스에서 테이블은 각각의 행을 구별하는 기본키가 필요하다 기본키를 만들 때는 주민등록번호, 주문번호 같은 자연키 를 사용할 수도 있고, 논리적 의미가 하나도 없는 시퀀스와 같은 대체키를 사용할 수도 있다. @GeneratedValue JPA Entity 에서 @GeneratedValue 어노테이션을 기본키 필드 위에 붙이면 기본키를 자동으로 생성해주는 전략을 사용할 수 있다. 전략은 크게 4가지 이다. IDENTITY 기본키 생성을 hibernate가 아닌, 데이터베이스가 하도록 위임한다. @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long .. JVM/JPA 2022. 8. 5. [JPA] SpringBoot JPA 쿼리 로그 설정하기 SpringBoot JPA를 사용할 때, SQL 쿼리문을 표출하는 설정 관련해서 정리해보자. 요약 application.yml spring: jpa: properties: hibernate: show_sql: true format_sql: true use_sql_comments: true logging: level: org: hibernate: type: descriptor: sql: trace application.properties spring.jpa.properties.hibernate.show_sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.use_sql_comments=true logg.. JVM/JPA 2022. 7. 27. [JPA] JpaRepository를 상속 받은 인터페이스는 @Repository 없이 어떻게 인스턴스화될까? 개요 Spring Data JPA 를 사용한다면, 보통 Repository 인터페이스는 다음과 같을 것이다 import org.springframework.data.jpa.repository.JpaRepository; public interface MemberRepository extends JpaRepository { // ... } 위의 코드만 봤을 때는, MemberRepository가 @Repository 어노테이션 없이 어떻게 Bean을 등록되는 지 알 수 없다. JpARepository 내부 구현 코드를 들어가봐도 Bean 으로 등록해주는 코드는 존재하지 않았다. 이 궁금증을 시작으로 찾아보게 되었다. @EnableJpaRepositories 이 어노테이션은 JPA Repository 들을 활.. JVM/JPA 2022. 7. 26. [DBeaver] 일부 테이블의 ERD만 확인하는 방법 및 ERD 이미지 저장하기 DB 테이블 ERD 확인하기 DBeaver는 Tool 내에서 ERD (ER Diagram)을 볼 수 있다. 추출하려는 DB 스키마/테이블 우클릭 "다이어그램 보기" 클릭 ERD 전체 표출 ERD 내 원하는 테이블 관계도 찾기 Ctrl + F 테이블명 검색 입력한 값에 포함되는 테이블을 찾아 화면 이동 DB 일부 테이블 ERD 확인하기 테이블의 양이 어마어마하게 많은 경우.. 아주 많은 ERD가 표출되는데.. 내가 원하는 테이블의 관계도를 보고 싶어서 위와 같이 검색을 하게 되면 DBeaver는 응답없음의 세상속으로 사라져버린다.. 보고자 하는 테이블만 드래그한 뒤 우클릭 "새 ER 다이어그램" 클릭 다이어그램 이름 설정 선택한 테이블의 ERD 표출 ERD Export 하기 하단 탭을 보면 다양한 기능이 .. Database/SQL 2022. 7. 15. [DBeaver] 알아두면 좋은 설정 및 자주 사용하는 단축키 테마 변경 윈도우 - 설정 - User Interface - 모양 - 테마 : Dark 변경 SQL 쿼리 서식 변경 윈도우 - 설정 - 편집기 - SQL 편집기 - SQL 포맷 Formatter : Compact 서식 Keyword case : Upper/Lower 기존에 Oracle을 많이 사용을 해와서인지, 쿼리 명령어가 대문자가 눈에 잘 익히는데 DBeaver는 기본적으로 소문자로 자동변환된다. 이는 키워드 Case를 대문자 혹은 소문자로 설정해 놓을 수 있다. 명령어 대/소문자 자동변환 위에서 대소문자 설정은 했지만, 만약 설정을 해도 자동으로 대/소문자 변환이 안되는 경우는 다음 체크박스가 체크되어있는 지 확인한다. 윈도우 - 설정 - 편집기 - SQL 편집기 - Code Editor : Aut.. Database/SQL 2022. 7. 15. 이전 1 2 3 4 5 6 7 ··· 25 다음 추천 글 728x90 반응형