Top

마이바티스를 사용한 자바 퍼시스턴스 개발

  • 원서명Java Persistence with MyBatis 3 (ISBN 9781782166801)
  • 지은이시바 프라사드 레디
  • 옮긴이이동국
  • ISBN : 9788960774599
  • 15,000원
  • 2013년 08월 23일 펴냄 (절판)
  • 페이퍼백 | 152쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

마이바티스는 가장 인기 있는 퍼시스턴스 프레임워크다. 이 책은 간단한 자바 프로젝트를 생성해보면서 마이바티스가 대중의 인기를 끄는 이유를 하나씩 설명한다. XML을 사용한 설정방법뿐 아니라 자바 API를 사용한 설정방법과 애노테이션을 사용하는 방법까지 다루며, 일대일이나 일대다 같은 테이블 관계부터 동적 SQL까지 마이바티스가 제공하는 기능을 모두 설명한다. 스프링을 연동하는 방법에서는 최신 버전인 1.2.0의 변경사항 위주로 다양한 방법을 제시한다. 이늄(enum)이나 LOB 타입 등을 처리하는 부가적인 내용까지 다루지만, 언제든지 쉽게 가지고 다닐 수 있을 만큼 얇고, 저자가 전하고자 하는 말을 모두 전하도록 짜임새 있게 구성한 책이다.


[ 이 책에서 다루는 내용 ]

■ JDBC 개발자와 아이바티스 개발자를 위한 단계별 마이바티스 설명
■ 데이터 CRUD를 처리하는 마이바티스 코드와 결과물
■ 스프링 연동 모듈을 통한 손쉬운 스프링 연동
■ 다양해진 매핑 구문 정의
■ 아이바티스에 비해 훨씬 쉬워진 동적 SQL 처리
■ 소스 자동 생성기인 마이바티스 제너레이터
■ 자바 애플리케이션, 자바 웹, 스프링 연동 웹까지 마이바티스와 관련한 포괄적 설명


[ 이 책의 대상 독자 ]

마이바티스 프레임워크를 배우고자 하는 자바 개발자를 위한 책이다. 마이바티스를 처음 시작할 때 필요한 내용을 실무적인 관점에서 알려준다. 이 책을 보기에 앞서 독자는 자바와 SQL에 대해서는 기본 지식을 가지고 있어야 한다. 하지만 마이바티스 자체에 대해서는 전혀 몰라도 무방하다.


[ 이 책의 구성 ]

1장, 마이바티스 처음 사용하기: 마이바티스 퍼시스턴스 프레임워크를 소개하고 JDBC만을 사용하는 대신 마이바티스를 사용할 때의 장점에 대해 설명한다. 프로젝트를 만들어서 마이바티스 프레임워크와 관련 라이브러리를 설치하고 설정 및 사용하는 방법에 대해 알아 본다.

2장, 마이바티스 시작하기: XML과 자바 API를 기반으로 설정해서 마이바티스를 처음 시작하는 방법을 다룬다. 타입 별칭, 타입 핸들러 그리고 전역 세팅 등 다양한 마이바티스 설정을 배울 수 있다.

3장, XML을 사용한 SQL 매퍼: 매퍼 XML을 사용해서 SQL 매핑 구문을 작성하는 방법을 세부적으로 다룬다. 간단한 구문과 일대일 관계의 구문, 일대다 관계의 구문 그리고 결과 매핑을 사용하는 방법을 익힌다. 그리고 동적 쿼리, 페이지 처리된 결과 처리, 결과셋을 다루는 방법을 재정의하는 등의 내용을 배워 본다.

4장, 애노테이션을 사용한 SQL 매퍼 애노테이션을 사용해서 SQL 매핑 구문을 작성하는 방법을 다룬다. 간단한 구문, 일대일 관계의 구문, 일대다 관계의 구문을 설정하는 방법을 배워 본다. SqlProvider 애노테이션을 사용해서 동적 쿼리를 만드는 방법도 설명한다.

5장, 스프링과 연동하기: 마이바티스를 스프링 프레임워크와 연동하는 방법을 다룬다. 스프링 라이브러리를 설치하고 스프링의 애플리케이션 컨텍스트에 마이바티스 빈을 등록하고 SqlSession과 매퍼 빈을 주입하는 방법을 설명한다. 그리고 스프링이 제공하는 애노테이션 기반의 트랜잭션 제어 기법을 사용할 것이다.

저자/역자 소개

[ 저자 서문 ]

많은 소프트웨어 시스템에서 데이터베이스에 데이터를 저장하거나 가져오는 과정은 굉장히 중요하다. 자바를 사용하는 분야에서는 데이터 퍼시스턴스 레이어를 구현하기 위한 많은 도구와 프레임워크가 있다. 그리고 이 각각의 도구와 프레임워크는 저마다 다른 형태의 방법을 제공한다. 간단하지만 강력한 자바 퍼시스턴스 프레임워크인 마이바티스는 중복코드를 제거하고 SQL과 자바가 제공하는 강력한 기능을 함께 사용할 수 있다.

이 책은 마이바티스를 설치하고 설정하고 사용하는 일련의 과정을 다룬다. 각 장에서는 간단하고 실무적인 예제를 사용해서 단계별로 설명한다.

이 책의 마지막에는 이론적인 지식뿐 아니라 마이바티스를 실무 프로젝트에 사용하는 방법에 대한 이해와 경험을 알려줄 것이다. 이 책의 각 장에서 설명하는 내용은 참고문헌처럼 필요한 부분만 다시 찾아볼 수도 있다. 실전 예제를 통해 좀더 쉽게 배울 수 있도록 설명해놓았다.


[ 저자 소개 ]

시바 프라사드 레디 (Siva Prasad Reddy)
인도의 하이데라바드에 사는 고급 소프트웨어 엔지니어다. 자바와 자바EE 기술을 사용해서 기업용 애플리케이션을 개발한 지 6년이 넘었다. 시바는 선(Sun)에서 인증한 자바 프로그래머로서, 자바와 자바EE, 스프링, 하이버네이트, 마이바티스, JSF(PrimeFaces) 그리고 웹서비스(SOAP/REST) 같은 다양한 서비스 측 기술을 사용한 경험이 많다.
시바는 블로그 www.sivalabs.in를 운영해 지식을 공유하며, 그의 트위터(@sivalabs)나 깃허브(https://github.com/sivaprasadreddy)를 팔로우하면 그에 대한 정보를 좀더 많이 얻을 수 있다.


[ 옮긴이의 말 ]

이 책을 알게 된 건 나의 첫 저서인 『마이바티스 프로그래밍』이 막 출간되고 시중에 판매되기 시작한 시점이었다. 두 번째 책을 모두 마치고 난 뒤라, 머릿속엔 이젠 좀 쉬어 보자 하는 생각뿐이었다. 하지만 한편으로는 같은 주제의 책이라면 이 저자는 어떤 관점을 가지고 어떻게 구성했을까 하는 묘한 궁금증이 생겼다. 팩트출판사 홈페이지에서 이 책에 대한 소개를 보고 가장 놀랐던 점은 원서가 고작 100페이지 안팎의 매우 얇은 분량이라는 점이었다. 고작 100쪽 분량에 마이바티스를 모두 다룰 수 있을까? 하는 의아한 마음으로 이 책을 보기 시작했다.

원서를 한 장씩 넘기면서 저자가 굉장히 쉽게 읽을 수 있게 책을 써내려 갔다는 점을 느꼈다. 그리고 같은 주제라 하더라도 누구의 손을 거치느냐에 따라 정말 다른 결과물이 나온다는 것도 느낄 수 있었다. 마이바티스가 제공하는 다양한 내용을 한 부분에 크게 치우치지 않고 잘 설명했고 특히 마이바티스-스프링 모듈에는 최신 내용을 군더더기 없이 잘 정리했다. 내가 저서를 쓰면서 미처 파악하지 못했던 부분도 많이 알게 됐으며, 이늄(enum)이나 LOB 타입 처리, 여러 개의 입력 파라미터 및 결과 데이터 처리 등 저자의 노하우를 알려주는 부분도 큰 도움이 됐다.

이 책은 간단한 자바 프로젝트를 생성해보면서 마이바티스가 대중의 인기를 끄는 이유를 하나씩 설명한다. XML을 사용한 설정방법뿐 아니라 자바 API를 사용한 설정방법과 애노테이션을 사용하는 방법까지 다루며, 일대일이나 일대다 같은 테이블 관계부터 동적 SQL까지 마이바티스가 제공하는 기능을 모두 설명한다. 스프링을 연동하는 방법에서는 최신 버전인 1.2.0의 변경사항 위주로 다양한 방법을 제시한다. 이늄(enum)이나 LOB 타입 등을 처리하는 부가적인 내용까지 다루지만, 언제든지 쉽게 가지고 다닐 수 있을 만큼 얇고, 저자가 전하고자 하는 말을 모두 전하도록 짜임새 있게 구성한 책이다.

이 책이 마이바티스를 사용하는 모든 자바 개발자에게 도움이 되길 바란다.


[ 옮긴이 소개 ]

이동국
현재 네이버 스포츠서비스개발 팀에서 댓글과 스포츠 업무를 담당 중이다. 네이버 뉴스라이브러리 프로젝트를 진행했고, 2012년에는 네이버 뉴스 댓글 시스템을 새로 만들고, 네이버 뉴스 대선 프로젝트도 담당했다.

울산대학교에서 수학과 컴퓨터를 복수 전공했으며, 현재는 개발자로 살아가고 있다. 현재까지 마이바티스를 포함해서 아이바티스, 스프링, prototype.js, AppFuse, Visual VM 등의 공식 문서를 번역해서 공유하고 있다. 2007년에는 『iBatis 인 액션』 번역서를, 2013년에는 『마이바티스 프로그래밍』이라는 저서를 펴냈다. 최근에는 성능에 관심이 많아서 관련 분야를 공부하고 있다.

개인 위키(http://ldg.pe.kr)와 블로그(http://blog.ldg.pe.kr)를 운영하고, 다섯 살배기 딸 쌍둥이 아빠로 네 가족이 용인에서 행복하게 살고 있다.

목차

목차
  • 1장, 마이바티스 처음 사용하기
    • 마이바티스 소개
    • 마이바티스를 사용하는 이유
      • JDBC가 제시하는 표준형태의 코드를 제거한다
      • 배우기 쉽다
      • 레거시 데이터베이스에서도 잘 동작한다
      • SQL을 사용한다
      • 스프링 프레임워크와 구글쥬스 프레임워크의 연동을 지원한다
      • 서드파티 캐시 라이브러리와의 연동을 지원한다
      • 좀더 나은 성능을 내도록 만든다
    • 마이바티스 설치와 설정
      • STUDENTS 테이블을 만들고 샘플 데이터를 입력한다
      • 자바 프로젝트를 만들고 클래스패스에 mybatis-3.2.2.jar를 추가한다
      • mybatis-config.xml 과 StudentMapper.xml 설정파일을 만든다
      • MybatisSqlSessionFactory 클래스의 싱글턴 객체를 만든다
      • StudentMapper인터페이스와 StudentService 클래스를 만든다
      • StudentService 를 테스트하기 위해 JUnit 테스트를 만든다
    • 샘플 도메인 모델
    • 요약
  • 2장 마이바티스 시작하기
    • XML을 사용한 마이바티스 설정
      • environment 엘리먼트
      • dataSource 엘리먼트
      • transactionManager 엘리먼트
      • properties 엘리먼트
      • typeAliases 엘리먼트
      • typeHandlers 엘리먼트
      • settings 엘리먼트
      • mappers 엘리먼트
    • 자바 API를 사용한 마이바티스 설정
      • Environment
      • DataSource
      • TransactionFactory
      • 타입 별칭
      • 타입 핸들러
      • 설정
      • 매퍼
    • 마이바티스 로깅 설정을 변경하기
    • 정리
  • 3장 XML을 사용한 SQL 매퍼
    • 매퍼 XML과 매퍼 인터페이스
    • 매핑구문
      • INSERT 구문
      • UPDATE 구문
      • DELETE 구문
      • SELECT 구문
    • 결과 매핑
      • 간단한 결과 매핑
      • 결과 매핑 확장
      • 일대일 매핑
      • 내포된 결과 매핑을 사용한 일대일 매핑
      • 내포된 Select를 사용한 일대일 매핑
      • 일대다 매핑
      • 내포된 결과 매핑을 가진 일대다 매핑
      • 내포된 Select를 가진 일대다 매핑
    • 동적 SQL
      • If 조건
      • choose, when, otherwise 조건
      • where 조건
      • trim 조건
      • foreach 루프
      • set 조건
    • 마이바티스 레시피
      • 이늄 타입 다루기
      • CLOB/BLOB 타입 다루기
      • 여러 개의 입력 파라미터 전달
      • 여러 개의 결과를 Map으로 저장
      • 로우바운드를 사용해서 페이지 처리된 결과셋
      • ResultSetHandler를 사용한 ResultSet 처리방식 재정의
      • 캐시
    • 정리
  • 4장 애노테이션을 사용한 SQL 매퍼
    • 애노테이션을 사용한 매퍼 인터페이스
    • 매핑구문
      • @Insert
      • @Update
      • @Delete
      • @Select
    • 결과 매핑
      • 일대일 매핑
      • 일대다 매핑
    • 동적 SQL
      • @InsertProvider
      • @UpdateProvider
      • @DeleteProvider
    • 정리
  • 5장 스프링과 연동하기
    • 스프링 애플리케이션의 마이바티스 설정
      • 설치
      • 마이바티스 빈 설정
    • SqlSession 활용
    • 매퍼 활용
      • <mybatis:scan/>
      • @MapperScan
    • 스프링을 사용한 트랜잭션 관리
    • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

2015. 7. 13 수정사항

[p30: 3번 코드 4행]
Student student = mapper.selectStudentById
->
Student student = mapper.findStudentById

2016. 12. 22 수정사항

[p.71: 16행]
리턴타입와
->
리턴타입과