전체 글

멈추지 않고 꾸준히 배우는 이들에게 도움이 되고픈 블로그입니다.
spring/spring db2

7. 데이터 접근 기술 - Querydsl

1. Querydsl 설정 1.1. build.gradle plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' // hibernate.version 버그로 인한 version downgrade 방법 ext["hibernate.version"] = "5.6.5.Final" configurations { compileOnly { extendsFrom annotationProcessor } } re..

spring/spring db2

6. 데이터 접근 기술 - 스프링 데이터 JPA

스프링 데이터 JPA 소개 spring Data는 interface이고 공통 기능만 존재 - crud+쿼리 , 페이징처리, 등등 존재 해당 구현체로 spring data jpa, spring data mongoDB, spring data ... 등이 존재 결론은 spring data JPA를 잘 사용하기 위해서는 spring, db, 하이버네이트, jpa를 먼저 확실히 알아서 그걸 조금 편하게 해주는 것이 spring data JPA라는 것임을 잊지 말자 1. 스프링 데이터 JPA 주요 기능 스프링 데이터는 JPA를 편리하게 사용할 수 있도록 도와주는 라이브러리이다. 수많은 편리한 기능을 제공하지만 가장 대표적인 기능은 공통 인터페이스 기능 쿼리 메서드 기능 1.1. 공통 인터페이스 기능 JpaRepos..

spring/spring db2

5. 데이터 접근 기술 - JPA

1. JPA 설정 spring-boot-starter-data-jpa 라이브러리 JPA와 spring data JPA를 springboot와 통합하고, 설정도 간단히 할 수 있다. spring-boot-starter-jdbc를 포함(의존)한다. mybatis-spring-boot-starter도 spring-boot-starter-jdbc를 포함 추가되는 library hibernate-core : JPA 구현체인 하이버네이트 라이브러리 jakarta.persistence-api : JPA 인터페이스 spring-data-jpa : 스프링 데이터 JPA 라이브러리 build.gradle plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spr..

spring/spring & boot

spring 설정 파일 : web.xml , servlet-context, root-context

1. web.xml web.xml은 Was(ex : Tomcat)가 처음 실행할 때 web.xml 파일을 제일 먼저 읽고 거기에 정의된 구성대로 프로젝트를 설정해준다. 쉽게 말하자면 내 Spring project의 구성을 설정하는 파일이고 제일 먼저 설정되는 파일 web.xml 내부에서 spring 관련 설정 파일로 servlet-context.xml, root-context.xml 이 존재 contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframework.web.filter.CharacterEncodingFilte..

spring/spring db2

4. 데이터 접근 기술 - MyBatis(springboot, gradle)

1. MyBatis 소개 JdbcTemplate 보다 더 많은 기능을 제공하는 SQL Mapper JdbcTempate이 제공하는 대부분의 기능을 제공 SQL을 XML에 편리하게 작성 및 동적 쿼리를 매우 편리하게 작성 가능 project에서 동적 쿼리와 복잡한 쿼리가 많을 시 MyBatis를 사용하고, 단순 쿼리가 많을 시, JdbcTemplate을 선택해서 사용하면 된다. MyBatis 공식 사이트 : https://mybatis.org/mybatis-3/ko/index.html 현재 수행하는 MyBatis 방식은 spring boot에서 권장하는 방식 1.1. spring(maven)에서 spring boot(gradle)에서 Mybatis 사용방법 차이점 spring - maven pom.xml ..

test/JUnit5

springboot - embedded mode H2 test 방법

1. test - 임베디드 모드 db 사용 이유 test case를 실행하려고 별도의 db를 설치하고, 운영하는 것이 비효율적 단순 검증 용도로 사용하므로 test 종료시 db의 data를 모두 삭제해도 된다. 더해서 test 종료시, db 자체를 날려도 된다. 임베디드 모드 H2 db는 java로 개발 되어있고 JVM 안에서 memory 모드로 동작한느 특별한 기능 제공 app 실행할 때 H2 데이터베이스도 해당 JVM 메모리에 포함해서 함께 실행 하 수 있다. db를 app에 내장해서 함께 실행한다고 Embedded mode라고 한다. app 종료시, embedded mode로 동장하는 H2 db도 함께 종료되고 data도 모두 사라진다. = java libarary처럼 동작한다. 수동, 자동 공통 ..

DB/H2

임베디드(= 메모리) 데이터 베이스

1. test - 임베디드 모드 db 사용 이유 test case를 실행하려고 별도의 db를 설치하고, 운영하는 것이 비효율적 단순 검증 용도로 사용하므로 test 종료시 db의 data를 모두 삭제해도 된다. 더해서 test 종료시, db 자체를 날려도 된다. 임베디드 모드 H2 db는 java로 개발 되어있고 JVM 안에서 memory 모드로 동작한느 특별한 기능 제공 app 실행할 때 H2 데이터베이스도 해당 JVM 메모리에 포함해서 함께 실행 하 수 있다. db를 app에 내장해서 함께 실행한다고 Embedded mode라고 한다. app 종료시, embedded mode로 동장하는 H2 db도 함께 종료되고 data도 모두 사라진다. = java libarary처럼 동작한다. 수동, 자동 공통 ..

test/JUnit5

@Test - @Transactional 적용

1. test - data rollback spring db 1 에서 학습한 transactionManger과 status를 이용하여 status가 true, false 상관 없이 무조건 rollback하도록 @BeforeEach @AfterEach 사용 @BeforeEach 수행 부터 @AfterEach 오기전까지 동일 connection을 사용하는 transaction 수행됨 package hello.itemservice.domain; @SpringBootTest class ItemRepositoryTest { // DataSource와 txManger는 springboot에서 자동으로 생성해놓았다. @Autowired ItemRepository itemRepository; //tx 관련 code @..

wooweee
코아일체