How To Take This Class

Course Overview

Integrating Spring 2.5 & Hibernate (Spring Emphasis) is an in-depth Spring and Hibernate training course geared for experienced Java developers who need to understand what Spring Framework is in terms of today's systems and architectures, and how to use Spring in conjunction with other technologies and frameworks. The course explores the Hibernate framework and how to apply Hibernate to persistence requirements in Java and J2EE applications. Students will also learn how to integrate Hibernate as the persistence layer for Spring applications.

Course Prerequisites

Attendees should have practical basic Java development experience.

Course Audience

This an intermediate level and beyond Java training course, designed for developers who need to understand how and when to use Hibernate in Spring applications.

What You'll Learn

Upon successful completion of this course, students will be able to:
  • Explain the issues associated with complex frameworks such as J2EE and how Spring addresses those issues
  • Understand the relationships between Spring and J2EE, AOP, IOC, JDBC, Hibernate, JSF, Struts, JMS, and EJBs
  • Write applications that take advantage of the Spring container and the declarative nature of assembling simple components into applications
  • Work with Spring's support for transactions
  • Explain how the issues associated with object persistence in a relational model are addressed by Hibernate
  • Understand the relationships between SQL, Java, Spring, and Hibernate
  • Write applications that take advantage of the Hibernate Persistence Manager
  • Map Java classes to relational tables
  • Capture both relational and inheritance associations in metadata using either XML or the Java 5 Annotations mechanism
  • Create and use mappings between Java classes and relational databases
  • Understand how identity and keys are handled in Hibernate
  • Understand the persistent object lifecycle and how that relates to transactions and concurrency
  • Understand how to use Hibernate within the Spring framework

Course Duration

5 Days

Course Outline

  1. Introduction to the Spring 2.5 Framework
    • Inversion of Control
    • Dependency Injection
    • Spring Overview
    • Spring Application Architectures
    • Spring Container
    • Managing the Container
    • Access to Services and Resources
    • Application Contexts
    • Beans as Components
    • Beans and Factories
    • XML Bean Configuration
    • Bean Definition and Dependencies
    • Bean Lifecycle
    • Customization Options
    • Post-Processors
    • Property Editors
  2. Data Access
    • Data Access Pattern
    • Overview of Persistence Layer and Transactions
    • Transaction Overview
    • Spring Transactions
    • Defining Spring Transactions
    • Working with Demarcation
    • Managing Spring Transactions
    • Spring JDBC
    • Spring JDBC Architecture
    • Working with JDBC Template
    • Database Operations
    • Handling JDBC Exceptions
  3. Spring Views
    • Spring/Web Framework Architecture
    • Spring MVC (optional)
    • Spring MVC Architecture
    • Spring MVC Components
    • Spring MVC Flow
    • Dispatcher and Controllers
    • Handlers and Mappings
    • Interceptors
  4. Introduction to Hibernate
    • ORM Mapping Issues
    • Hibernate Architecture
    • Persistence, Identity, and Equality in Hibernate
    • Domain Models and Metadata Options
    • Options for Representing Persistence
  5. Getting Started with Hibernate
    • Basic Mapping
    • Class/properties to Table/Columns
    • Basic Configuration
    • Mapping a POJO to a Database
    • Syntax of mapping file
    • Basics of Hibernate Session
    • Working with Persisted Objects
  6. Basic ORM in Hibernate
    • Configuring persistence
    • Object Identity in Hibernate
    • Generating Unique Keys
    • Mapping Classes to Multiple Tables
  7. Value-Type Collections and Components
    • Element Types
    • Mapping Compositions
    • Mapping Java Collections
    • Bags and Dynamic Components
  8. Mapping Inheritance
    • Strategies for Inheritance ORM
    • Single, Class, and Concrete Table Patterns
    • Discriminators
  9. Hibernate Annotations
    • Working with Hibernate Annotations
    • Annotation-Capable Sessions
    • Annotations and Persistence
    • Annotations, Mapping, and Relationships
  10. Working with Persistent Objects
    • Transient, Persistent, and Detached
    • Transitioning Between States
    • Options for Retrieving Objects
    • Attached and Detached States
    • Update, Merge, and Cascade
  11. Querying for Objects
    • Hibernate Query API
    • Hibernate Query Language (HQL)
    • HQL Syntax and Usage
    • Criteria
  12. Integrating Spring and Hibernate
    • Spring - Hibernate Support
    • Session and Connection Management
    • Hibernate DAOs
    • Hibernate Template