Spring/JDBC

·Spring/JDBC
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..
·Spring/JDBC
장점설정의 편리함JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있어서 별도의 설정 없이 사용할 수 있다.반복 문제 해결템플릿 콜백 패턴을 사용해서, JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해준다.개발자는 SQL을 작성하고, 전달할 파라미터를 정의하고, 응답 값을 매핑하기만 하면 된다.반복 작업 목록커넥션 흭득Statement를 준비하고 실행결과를 반복하도록 루프를 실행커넥션, Statment, resultset 종료트랜잭션을 다루기 위한 커넥션 동기화예외 발생시 스프링 예외 변환기 실행 단점으로는 동적 SQL을 해결하기 어렵다. NamedParameterJdbcTemplatenew NamedParameterJdbcTemplate(dataSource) 로 생..
·Spring/JDBC
스프링은 데이터 접근 계층에 대한 수십 가지 예외를 정리해서 일관된 예외 계층을 제공한다.각각의 예외는 특정 기술에 종속적이지 않게 설계되어 있다. 따라서 서비스 계층에서도 스프링이 제공하는 예외를 사용하면 된다.위 그림 말고도 더 많은 예외 계층이 존재한다예외의 최고 상위는 DataAccessException이다. 런타임 예외를 상속받았기 때문에 모두 언체크 예외이다.그리고 NonTransient와 Transient로 갈리는데Transient의 하위 예외는 동일한 SQL을 다시 시도했을 때 성공할 가능성이 있다.예를 들어서 쿼리 타임아웃, 락과 관련된 오류들이 존재한다.NonTransient는 같은 SQL을 반복해서 실행하면 실패한다.SQL 문법 오류, 데이터베이스 제약조건 위배 등이 있다.스프링 메뉴..
·Spring/JDBC
서비스 계층은 가급적 특정 구현 기술에 의존하지 않고, 순수하게 유지하는 것이 좋다.인터페이스를 이용하기특정 기술에 종속하지 않는 순수한 인터페이스를 만들어서 인터페이스 의존하면 된다.하지만 인터페이스를 도입해도 추상 메서드에 throw SQLException을 던져줘야 한다.구현클래스의 메소드에 throw SQLException을 하려해도 구현 클래스의 메서드도 예외를 던질 수 있다.참고로 구현 클래스의 메서드에 선언할 수 있는 예외는 부모 타입에서 던진 예외와 같거나 하위 타입이어야 한다.  예를 들어서 인터페이스 메서드에 throws Exception 를 선언하면, 구현 클래스 메서드에 throws SQLException 는 가능하다. SQLException 은 Exception 의 하위 타입이기 ..
동그리담
'Spring/JDBC' 카테고리의 글 목록 (3 Page)