gitextract_ol89q38l/ ├── .gitignore ├── README.md ├── chapter01/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── mybatis3/ │ │ │ ├── domain/ │ │ │ │ └── Student.java │ │ │ ├── mappers/ │ │ │ │ └── StudentMapper.java │ │ │ ├── services/ │ │ │ │ ├── JdbcStudentService.java │ │ │ │ └── StudentService.java │ │ │ └── util/ │ │ │ └── MyBatisSqlSessionFactory.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── com/ │ │ │ └── mybatis3/ │ │ │ └── mappers/ │ │ │ └── StudentMapper.xml │ │ ├── log4j.properties │ │ ├── mybatis-config.xml │ │ └── sql/ │ │ ├── create_tables.sql │ │ ├── drop_tables.sql │ │ └── sample_data.sql │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── mybatis3/ │ │ └── services/ │ │ ├── StudentServiceTest.java │ │ └── TestDataPopulator.java │ └── resources/ │ └── log4j.properties ├── chapter02/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── mybatis3/ │ │ │ ├── domain/ │ │ │ │ ├── PhoneNumber.java │ │ │ │ └── Student.java │ │ │ ├── mappers/ │ │ │ │ └── StudentMapper.java │ │ │ ├── services/ │ │ │ │ └── StudentService.java │ │ │ ├── typehandlers/ │ │ │ │ └── PhoneTypeHandler.java │ │ │ └── util/ │ │ │ ├── DataSourceFactory.java │ │ │ └── MyBatisUtil.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── com/ │ │ │ └── mybatis3/ │ │ │ └── mappers/ │ │ │ └── StudentMapper.xml │ │ ├── full-mybatis-config.xml │ │ ├── log4j.properties │ │ ├── mybatis-config.xml │ │ └── sql/ │ │ ├── create_tables.sql │ │ ├── drop_tables.sql │ │ └── sample_data.sql │ └── test/ │ └── java/ │ └── com/ │ └── mybatis3/ │ └── services/ │ ├── StudentServiceTest.java │ └── TestDataPopulator.java ├── chapter03/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── mybatis3/ │ │ │ ├── domain/ │ │ │ │ ├── Address.java │ │ │ │ ├── Course.java │ │ │ │ ├── PhoneNumber.java │ │ │ │ ├── Student.java │ │ │ │ └── Tutor.java │ │ │ ├── mappers/ │ │ │ │ ├── AddressMapper.java │ │ │ │ ├── CourseMapper.java │ │ │ │ ├── StudentMapper.java │ │ │ │ └── TutorMapper.java │ │ │ ├── services/ │ │ │ │ ├── CourseService.java │ │ │ │ ├── StudentService.java │ │ │ │ └── TutorService.java │ │ │ ├── typehandlers/ │ │ │ │ └── PhoneTypeHandler.java │ │ │ └── util/ │ │ │ └── MyBatisUtil.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── com/ │ │ │ └── mybatis3/ │ │ │ └── mappers/ │ │ │ ├── AddressMapper.xml │ │ │ ├── CourseMapper.xml │ │ │ ├── StudentMapper.xml │ │ │ └── TutorMapper.xml │ │ ├── log4j.properties │ │ ├── mybatis-config.xml │ │ └── sql/ │ │ ├── create_tables.sql │ │ ├── drop_tables.sql │ │ └── sample_data.sql │ └── test/ │ └── java/ │ └── com/ │ └── mybatis3/ │ └── services/ │ ├── CourseServiceTest.java │ ├── StudentServiceTest.java │ ├── TestDataPopulator.java │ └── TutorServiceTest.java ├── chapter04/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── mybatis3/ │ │ │ ├── domain/ │ │ │ │ ├── Address.java │ │ │ │ ├── Course.java │ │ │ │ ├── PhoneNumber.java │ │ │ │ ├── Student.java │ │ │ │ └── Tutor.java │ │ │ ├── mappers/ │ │ │ │ ├── AddressMapper.java │ │ │ │ ├── StudentMapper.java │ │ │ │ └── TutorMapper.java │ │ │ ├── services/ │ │ │ │ ├── StudentService.java │ │ │ │ └── TutorService.java │ │ │ ├── sqlproviders/ │ │ │ │ └── TutorDynaSqlProvider.java │ │ │ ├── typehandlers/ │ │ │ │ └── PhoneTypeHandler.java │ │ │ └── util/ │ │ │ └── MyBatisUtil.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── com/ │ │ │ └── mybatis3/ │ │ │ └── mappers/ │ │ │ ├── StudentMapper.xml │ │ │ └── TutorMapper.xml │ │ ├── log4j.properties │ │ ├── mybatis-config.xml │ │ └── sql/ │ │ ├── create_tables.sql │ │ ├── drop_tables.sql │ │ └── sample_data.sql │ └── test/ │ └── java/ │ └── com/ │ └── mybatis3/ │ └── services/ │ ├── StudentServiceTest.java │ ├── TestDataPopulator.java │ └── TutorServiceTest.java ├── chapter05/ │ ├── README.txt │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── mybatis3/ │ │ │ ├── config/ │ │ │ │ └── AppConfig.java │ │ │ ├── domain/ │ │ │ │ ├── Address.java │ │ │ │ ├── Course.java │ │ │ │ ├── PhoneNumber.java │ │ │ │ ├── Student.java │ │ │ │ └── Tutor.java │ │ │ ├── mappers/ │ │ │ │ ├── AddressMapper.java │ │ │ │ ├── StudentMapper.java │ │ │ │ └── TutorMapper.java │ │ │ ├── services/ │ │ │ │ ├── StudentService.java │ │ │ │ └── TutorService.java │ │ │ ├── sqlproviders/ │ │ │ │ └── TutorDynaSqlProvider.java │ │ │ ├── typehandlers/ │ │ │ │ └── PhoneTypeHandler.java │ │ │ └── util/ │ │ │ └── MyBatisUtil.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── applicationContext.xml │ │ ├── com/ │ │ │ └── mybatis3/ │ │ │ └── mappers/ │ │ │ ├── StudentMapper.xml │ │ │ └── TutorMapper.xml │ │ ├── log4j.properties │ │ └── sql/ │ │ ├── create_tables.sql │ │ ├── drop_tables.sql │ │ └── sample_data.sql │ └── test/ │ └── java/ │ └── com/ │ └── mybatis3/ │ └── services/ │ ├── StudentServiceTest.java │ ├── TestDataPopulator.java │ └── TutorServiceTest.java └── elearning/ ├── README.txt ├── pom.xml └── src/ └── main/ ├── resources/ │ └── log4j.properties └── webapp/ ├── WEB-INF/ │ └── web.xml └── index.jsp