메모리는 쓰레드를 종료시키면 가지고 있던 데이터가 같이 없어지게 되지만 DB의 경우 그렇지 않습니다. 테스트에 사용된 데이터는 DB에 저장하지않고 테스트 실행 직전으로 돌려야합니다.이런 상황에서 테스트 하는 방법을 알아보겠습니다.@SpringBootTest 애노테이션이 붙은 클래스는 @SpringBootApplication 을 가진 클래스의 설정 정보를 사용합니다. 테스트 - 데이터베이스 분리H2 DB 기준 새로운 DB 생성 방법기존 실행 중이던 DB를 종료 후 다시 실행ip부분을 -> localhost 로 수정 후JDBC URL에 jdbc:h2:~/[DB명] 을 입력하면~/[DB명].mv.db 파일 생성 확인이후는 tcp를 이용해 원격 접속 ( jdbc:h2:tcp://localhost/~/[DB명..
JdbcTemplate 보다 더 많은 기능을 제공하는 SQL Mapper장점SQL을 xml파일에 편리하게 작성할 수 있다.동적 쿼리를 작성하기 쉽다.단점따로 설정이 필요하다.공식 사이트 메뉴얼 ( 번역 잘돼있음)mybatis 설정build.gradle에 mybatis 라이브러리 추가application.properties 에 다음과 같이 설정추가 **(Main, Test 두 곳 다)#MyBatis#마이바티스 xml에서 사용할 객체 경로(경로 생략을 위함)#하위 패키지와 하위 패키지 자동으로 인식mybatis.type-aliases-package=hello.itemservice.domain #스네이크 표기법을 카멜표기법으로 치환해줌 mybatis.configuration.map-underscore-to-c..
장점설정의 편리함JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있어서 별도의 설정 없이 사용할 수 있다.반복 문제 해결템플릿 콜백 패턴을 사용해서, JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해준다.개발자는 SQL을 작성하고, 전달할 파라미터를 정의하고, 응답 값을 매핑하기만 하면 된다.반복 작업 목록커넥션 흭득Statement를 준비하고 실행결과를 반복하도록 루프를 실행커넥션, Statment, resultset 종료트랜잭션을 다루기 위한 커넥션 동기화예외 발생시 스프링 예외 변환기 실행 단점으로는 동적 SQL을 해결하기 어렵다. NamedParameterJdbcTemplatenew NamedParameterJdbcTemplate(dataSource) 로 생..
스프링은 데이터 접근 계층에 대한 수십 가지 예외를 정리해서 일관된 예외 계층을 제공한다.각각의 예외는 특정 기술에 종속적이지 않게 설계되어 있다. 따라서 서비스 계층에서도 스프링이 제공하는 예외를 사용하면 된다.위 그림 말고도 더 많은 예외 계층이 존재한다예외의 최고 상위는 DataAccessException이다. 런타임 예외를 상속받았기 때문에 모두 언체크 예외이다.그리고 NonTransient와 Transient로 갈리는데Transient의 하위 예외는 동일한 SQL을 다시 시도했을 때 성공할 가능성이 있다.예를 들어서 쿼리 타임아웃, 락과 관련된 오류들이 존재한다.NonTransient는 같은 SQL을 반복해서 실행하면 실패한다.SQL 문법 오류, 데이터베이스 제약조건 위배 등이 있다.스프링 메뉴..