Top

자바 데이터베이스 프로그래밍 마이바티스 입문과 활용 (세트)

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

판매처

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

책 소개

[ 세트 구성: 전2권 ]

1) 『마이바티스 프로그래밍: JDBC를 대체하는 쉽고 빠른 자바 데이터베이스 프레임워크』
2) 『마이바티스를 사용한 자바 퍼시스턴스 개발』


『마이바티스 프로그래밍』 소개

마이바티스(MyBatis)는 JDBC를 대체하는 자바 퍼시스턴스 프레임워크로, 국내에서 가장 인기 있는 퍼시스턴스 프레임워크인 아이바티스(iBatis)를 새로이 업그레이드한 제품이다. 마이바티스는 아이바티스가 가진 간결함에, 아이바티스에 없던 다양한 기능과 개선을 더했다. 이 책은 JDBC를 사용하는 개발자가 쉽게 마이바티스를 사용할 수 있도록 차근차근 설명한다. 그리고 기존에 아이바티스를 사용하던 개발자에게는 마이바티스와의 차이점을 설명해서 쉽게 전환할 수 있도록 지원한다. 따라서 데이터베이스를 다루는 퍼시스턴스 프레임워크의 사용 경험이 없는 개발자도 데이터베이스 연동 작업을 매우 쉽게 할 수 있으며, 아이바티스를 사용해온 개발자는 처음 아이바티스를 사용할 때 느꼈던 그 간결함이 새로운 느낌으로 다가올 것이다. 이 책에서 다루는 마이바티스 버전은 3.2.1이고 스프링 연동 모듈은 1.2.0이다.

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

이 책의 대상 독자
이 책은 마이바티스를 처음 접하는 사람을 대상으로 내용을 구성했다. 또한 기존에 아이바티스를 사용하다가 마이바티스로 전환하려는 많은 개발자를 위해 아이바티스와 비교하는 내용도 곳곳에 적어뒀다.

자바의 기본 문법을 먼저 설명하고 JDBC를 설명하면 이 책은 굉장히 두꺼워지고 이 책이 전달하고자 하는 핵심을 제대로 전달하기 힘들다. 전달하고 싶은 내용에만 충실하기 위해 독자가 간단한 자바 애플리케이션을 작성해서 자바에 대한 어느 정도의 경험이 있고 데이터베이스 연동을 위한 JDBC 코드를 작성한 경험이 있다고 가정한다. 마이바티스는 내부에서 JDBC API를 사용하기 때문에 JDBC의 스펙을 그대로 가져간다. 이 말은 JDBC API의 제약 사항이 마이바티스에서도 동일하다는 뜻이고, JDBC를 아는 만큼 쉽게 마이바티스를 익힐 수 있다는 말도 된다. 마이바티스가 데이터베이스를 사용하는 프레임워크이므로 데이터베이스에 대한 기본 지식도 반드시 갖고 있어야 한다. 많은 애플리케이션은 데이터베이스에서 select/insert/update/delete만 알아도 대부분의 작업이 가능하다. 그래서 이 책을 보기 위해서는 자바의 기본적인 지식 외에도 데이터베이스에서 데이터를 조작하기 위한 select/insert/update/delete 구문에 대해서 반드시 알아야 한다.


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

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


이 책에서 다루는 내용
■ 데이터베이스 퍼시스턴스 레이어 구현체 단순화
■ XML과 자바 API를 사용한 마이바티스 설치 및 설정
■ XML과 애노테이션 매퍼를 사용한 일대다와 다대다 결과 매핑
■ 타입 별칭과 개발자가 별도로 구현한 타입 핸들러 사용
■ 페이징 처리와 SQL 결과셋(ResultSet) 처리의 개별 정의
■ XML과 SqlProvider 애노테이션을 사용한 동적 쿼리 생성
■ 마이바티스에서 스프링의 애노테이션 기반의 트랜잭션 관리 기능 사용

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

저자/역자 소개

[ 지은이/옮긴이 소개 ]

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

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

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

시바 프라사드 레디 (K. Siva Prasad Reddy)
인도의 하이데라바드에 사는 고급 소프트웨어 엔지니어다. 자바와 자바EE 기술을 사용해서 기업용 애플리케이션을 개발한 지 6년이 넘었다. 시바는 선(Sun)에서 인증한 자바 프로그래머로서, 자바와 자바EE, 스프링, 하이버네이트, 마이바티스, JSF(PrimeFaces) 그리고 웹서비스(SOAP/REST) 같은 다양한 서비스 측 기술을 사용한 경험이 많다.

시바는 블로그 www.sivalabs.in를 운영해 지식을 공유하며, 그의 트위터(@sivalabs)깃허브(https://github.com/sivaprasadreddy)를 팔로우하면 그에 대한 정보를 좀더 많이 얻을 수 있다.

목차

목차
  • <b><font color="#9F814F">『마이바티스 프로그래밍』</font></b>
  • 1장 JDBC 코드의 대안 마이바티스
    • 1.1 전통적인 JDBC 프로그래밍
    • 1.2 마이바티스란 무엇인가?
      • 1.2.1 마이바티스 프로젝트
      • 1.2.2 다른 언어를 위한 마이바티스
      • 1.2.3 연동 모듈
    • 1.3 데이터 매퍼 마이바티스의 역사
    • 1.4 마이바티스 구조
    • 1.5 정리
  • 2장 마이바티스 시작
    • 2.1 개발 환경의 구축
      • 2.1.1 데이터베이스 설치
      • 2.1.2 JDK 설치
      • 2.1.3 이클립스 설치와 예제 코드 다운로드
      • 2.1.4 톰캣 설치
    • 2.2 JDBC 코드 먼저 살펴보기
    • 2.3 마이바티스 라이브러리 설명
      • 2.3.1 마이바티스 라이브러리 파일 복사
      • 2.3.2 메이븐으로 마이바티스 라이브러리 관리
    • 2.4 마이바티스 설정 파일(mybatis-config.xml)
    • 2.5 마이바티스 객체 생성하기(SqlSessionFactory)
    • 2.6 정리
  • 3장 마이바티스 CRUD
    • 3.1 데이터 구조 파악
      • 3.1.1 데이터베이스 테이블 구조 파악
      • 3.1.2 자바 모델 클래스
    • 3.2 마이바티스 파라미터 표기법
    • 3.3 데이터 조회
      • 3.3.1 데이터를 조회하는 전통적인 JDBC 코드
      • 3.3.2 데이터를 조회하는 매핑 구문으로 분리
      • 3.3.3 매핑 구문을 사용하는 마이바티스 코드 생성
      • 3.3.4 마이바티스 코드를 사용한 데이터 조회
      • 3.3.5 데이터를 조회하는 마이바티스 실행 결과 로그
    • 3.4 데이터 입력
      • 3.4.1 데이터를 입력하는 전통적인 JDBC 코드
      • 3.4.2 데이터를 입력하는 매핑 구문으로 분리
      • 3.4.3 매핑 구문을 사용하는 마이바티스 코드 생성
      • 3.4.4 마이바티스 코드를 사용해 데이터를 입력
      • 3.4.5 데이터를 입력하는 마이바티스 실행 결과 로그
    • 3.5 데이터 수정
      • 3.5.1 데이터를 수정하는 전통적인 JDBC 코드
      • 3.5.2 데이터를 수정하는 매핑 구문으로 분리
      • 3.5.3 매핑 구문을 사용하는 마이바티스 코드 생성
      • 3.5.4 마이바티스 코드를 사용해 데이터 수정
      • 3.5.5 데이터를 수정하는 마이바티스 실행 결과 로그
    • 3.6 데이터 삭제
      • 3.6.1 데이터를 삭제하는 전통적인 JDBC 코드
      • 3.6.2 데이터를 삭제하는 매핑 구문으로 분리
      • 3.6.3 매핑 구문을 사용하는 마이바티스 코드 생성
      • 3.6.4 마이바티스 코드를 사용해 데이터 삭제
      • 3.6.5 데이터를 삭제하는 마이바티스 실행 결과 로그
    • 3.7 정리
  • 4장 마이바티스 웹 애플리케이션과 활용
    • 4.1 마이바티스를 사용하는 웹 프로젝트
    • 4.2 매퍼 XML과 매퍼 인터페이스
      • 4.2.1 XML만 사용
      • 4.2.2 인터페이스만 사용하는 경우
      • 4.2.3 XML과 인터페이스를 함께 사용하는 경우
    • 4.3 트랜잭션 관리
      • 4.3.1 SqlSessionFactory
      • 4.3.2 트랜잭션 처리
    • 4.4 조회 결과를 자바 객체에 설정(결과 매핑)
      • 4.4.1 한 개의 테이블을 사용하는 결과 매핑
      • 4.4.2 생성자를 통한 객체 생성(constructor 엘리먼트)
      • 4.4.3 1:1 관계를 처리하는 association 엘리먼트
      • 4.4.4 1:N 관계를 처리하는 collection 엘리먼트
      • 4.4.5 동적으로 결과 매핑을 선택하는 discriminator 엘리먼트
    • 4.5 정리
  • 5장 마이바티스와 스프링 웹 애플리케이션 연동
    • 5.1 마이바티스 라이브러리
      • 5.1.1 마이바티스 스프링 연동 모듈 복사
      • 5.1.2 메이븐으로 스프링 연동 모듈 관리
    • 5.2 스프링을 사용하는 자바 웹 프로젝트 생성
    • 5.3 스프링 설정
      • 5.3.1 스프링의 데이터베이스 관련 설정
      • 5.3.2 스프링 연동 설정
    • 5.4 레이어별 예제
      • 5.4.1 CommentService
      • 5.4.2 CommentRepository
      • 5.4.3 데이터를 출력하는 JSP
    • 5.5 마이바티스와 스프링 JDBC를 함께 사용
      • 5.5.1 스프링 JDBC 객체 생성
      • 5.5.2 스프링 JDBC 사용
    • 5.6 정리
  • 6장 마이바티스 설정 파일
    • 6.1 복잡한 마이바티스 설정 파일
    • 6.2 properties 엘리먼트
    • 6.3 settings 엘리먼트
    • 6.4 typeAliases 엘리먼트
    • 6.5 typeHandlers 엘리먼트
    • 6.6 objectFactory 엘리먼트
    • 6.7 plugins 엘리먼트
    • 6.8 environments 엘리먼트
      • 6.8.1 트랜잭션 관리자
      • 6.8.2 데이터 소스
    • 6.9 mappers 엘리먼트
    • 6.10 정리
  • 7장 매퍼 XML과 매퍼 인터페이스
    • 7.1 매퍼 XML
      • 7.1.1 cache-ref, cache 엘리먼트
      • 7.1.2 resultMap 엘리먼트
      • 7.1.3 sql 엘리먼트
      • 7.1.4 insert, update, delete 엘리먼트
      • 7.1.5 selectKey 엘리먼트
      • 7.1.6 select 엘리먼트
    • 7.2 매퍼 인터페이스
      • 7.2.1 간단한 CRUD를 처리하기 위한 매퍼 인터페이스
      • 7.2.2 다양한 애노테이션 결과 매핑 살펴보기
      • 7.2.3 매퍼 인터페이스에서 사용 가능한 애노테이션
    • 7.3 SqlSession API
    • 7.4 정리
  • 8장 동적 SQL
    • 8.1 XML에서 동적 SQL을 위한 엘리먼트를 사용
      • 8.1.1 OGNL의 기본 문법
      • 8.1.2 if 엘리먼트
      • 8.1.3 choose(when, otherwise) 엘리먼트
      • 8.1.4 trim(where) 엘리먼트
      • 8.1.5 foreach 엘리먼트
      • 8.1.6 set 엘리먼트
      • 8.1.7 OGNL을 사용해 정적 메소드와 정적 필드에 접근
    • 8.2 마이바티스의 구문 빌더 API를 사용해 생성
      • 8.2.1 SelectBuilder
      • 8.2.2 SqlBuilder
    • 8.3 일반적인 자바 코드 사용
    • 8.4 정리
  • 9장 마이바티스 제너레이터
    • 9.1 마이바티스 제너레이터 소개
    • 9.2 설치 방법과 실행 방법
      • 9.2.1 압축 파일의 다운로드와 실행
      • 9.2.2 메이븐으로 jar 파일을 다운로드하고 실행
      • 9.2.3 이클립스 플러그인 설치
    • 9.3 설정 파일과 설정 파일에 따른 생성 결과
      • 9.3.1 애노테이션만 사용해 매핑 구문을 정의
      • 9.3.2 XML만 사용해 매핑 구문 정의
      • 9.3.3 애노테이션과 XML을 함께 사용해 매핑 구문 정의
    • 9.4 설정 파일의 세부 옵션
      • 9.4.1 generatorConfiguration
      • 9.4.2 properties, property
      • 9.4.3 classPathEntry
      • 9.4.4 context
      • 9.4.5 commentGenerator
      • 9.4.6 jdbcConnection
      • 9.4.7 javaModelGenerator
      • 9.4.8 javaClientGenerator
      • 9.4.9 sqlMapGenerator
      • 9.4.10 table
      • 9.4.11 generatedKey
    • 9.5 제너레이터 활용 방안
      • 9.5.1 제너레이터가 생성하는 코드 전체를 그대로 사용
      • 9.5.2 제너레이터로 코드 생성 후 실제 사용하는 부분만 복사 후 반영
    • 9.6 정리
  • 부록 A 아이바티스에서 마이바티스로 전환
    • A.1 DTD 변환 규칙
      • A.1.1 설정 파일의 DTD
      • A.1.2 매퍼 XML의 DTD
    • A.2 설정 파일 변환 규칙
      • A.2.1 최상위 엘리먼트
      • A.2.2 settings 엘리먼트
      • A.2.3 typeAlias 엘리먼트
      • A.2.4 transactionManager 엘리먼트와 dataSource 엘리먼트
      • A.2.5 매퍼 설정
    • A.3 매퍼 XML 변환 규칙
      • A.3.1 XML 엘리먼트
      • A.3.2 중첩 결과 매핑 설정
      • A.3.3 parameterMap
      • A.3.4 인라인 파라미터(파라미터 표기법)
      • A.3.5 jdbcType
      • A.3.6 저장 프로시저
      • A.3.7 캐시
      • A.3.8 동적 SQL
    • A.4 자바 API
      • A.4.1 SqlMapClient
      • A.4.2 사용자 정의 타입 핸들러
  • 부록 B 마이바티스 편집기
    • B.1 설치 방법
    • B.2 제공하는 기능
  • 부록 C 흔히 발생할 수 있는 에러 유형

  • <b><font color="#9F814F">『마이바티스를 사용한 자바 퍼시스턴스 개발』</font></b>
  • 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
      • typeAliases
      • typeHandlers
      • Settings
      • Mappers
    • 마이바티스 로깅 설정을 변경하기
    • 정리
  • 3장 XML을 사용한 SQL 매퍼
    • 매퍼 XML과 매퍼 인터페이스
    • 매핑구문
      • INSERT 구문
      • UPDATE 구문
      • DELETE 구문
      • SELECT 구문
    • 결과매핑(ResultMaps)
      • 간단한 결과매핑
      • 결과매핑 확장
      • 일대일 매핑
      • 내포된 결과매핑을 사용한 일대일 매핑
      • 내포된 Select를 사용한 일대일 매핑
      • 일대다 매핑
      • 내포된 결과매핑을 가진 일대다 매핑
      • 내포된 Select를 가진 일대다 매핑
    • 동적 SQL
      • If 조건
      • choose, when, 그리고 otherwise 조건
      • where 조건
      • trim 조건
      • foreach 루프
      • set 조건
    • 마이바티스 레시피
      • 이늄(enum) 타입 다루기
      • CLOB/BLOB 타입 다루기
      • 여러개의 입력 파라미터 전달
      • 여러개의 결과를 Map으로 저장
      • 로우바운드(RowBounds)를 사용해서 페이지처리된 결과셋
      • ResultSetHandler를 사용한 ResultSet 처리방식 재정의
      • 캐시
    • 정리
  • 4장 애노테이션을 사용한 SQL 매퍼
    • 애노테이션을 사용한 매퍼 인터페이스
    • 매핑구문
      • @Insert
      • @Update
      • @Delete
      • @Select
    • 결과매핑
      • 일대일 매핑
      • 일대다 매핑
    • 동적 SQL
      • @InsertProvider
      • @UpdateProvider
      • @DeleteProvider
    • 정리
  • 5장 스프링과 연동하기
    • 스프링 애플리케이션의 마이바티스 설정
      • 설치
      • 마이바티스 빈 설정
    • SqlSession 활용
    • 매퍼 활용
      • <mybatis:scan/>
      • @MapperScan
    • 스프링을 사용한 트랜잭션 관리

도서 오류 신고

도서 오류 신고

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

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

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