Spring Hibernate

CloudLabs

Projects

Assignment

24x7 Support

Lifetime Access

.

Course Overview

Hibernate and Spring are open-source Java frameworks that simplify developing Java/JEE applications from simple, stand-alone applications running on a single JVM, to complex enterprise applications running on full-blown application servers. Hibernate and Spring allow developers to produce scalable, reliable, and effective code. Both frameworks support declarative configuration and work with a POJO (Plain Old Java Object) programming model (discussed later in this article), minimizing the dependence of application code on the frameworks, and making development more productive and portable.

At the end of the training, participants will be able to:

Pre-requisite

  1. Create basic Java web applications
  2. Basic understanding of JDBC and relational database concepts

Duarion

5 days

Course Outline

  • Issues with Persistence layers and Object-Relational Mapping (ORM)
  • Hibernate Overview and Benefits
  • Hibernate architecture overview
  • POJO (Plain Old Java Object) Based Mapping
  • Overview of the Hibernate distribution
  • Configuring Hibernate
  • hibernate.cfg.xml file
  • SessionFactory configuration
  • Connection properties, Database dialect
  • Configuration class, Session Interface
  • Hello World Program for Hibernate
  • Mapping a Class
  • Persistent Entity Class, Hibernate Mapping
  • File, Mapping the Entity Class
  • Primary keys: Id property, Generated Id
  • Hibernate Type System
  • Working with sessions and Persistent Objects
  • Logging – log4j Overview and configuration for Hibernate
  • Inserting and Updating Entities
  • HQL – Hibernate Query Language Overview
  • The Query Interface
  • Creating and working with queries
  • Named Queries, Projection Queries, Aggregate Queries
  • Transaction Overview and Transactions in Hibernate
  • Hibernate Transaction API (in Managed and Non-managed Environments)
  • The lifecycle of managed objects
  • Persistent, transient, and detached objects
  • The Persistence (Session) Context (Lifespan, Relation to Managed Objects, Propagation)
  • Contextual Sessions
  • Synchronization to the Database
  • The Session as cache
  • Detached Objects and Optimistic Locking
  • Versioning overview and Using Versioning
  • Locking Objects
  • Object Relationship Overview
  • Mapping Collections of Value Objects
  • Entity Relationships: 1-N, N-1, N-N, 1-1
  • Mapping Entity Relationships
  • Uni and Bi-directional Relationships
  • The Relationship “inverse”
  • Cascading Over Relationships
  • Queries Across Relationships (Lazy and Eager)
  • Entity Inheritance with Hibernate
  • Table-per-class mapping
  • Table per Subclass mapping
  • Table per Concrete Class mapping
  • Projection Queries, Aggregate queries
  • Bulk updates and deletes
  • Native SQL Queries
  • Query Filters
  • Overview of the Criteria API
  • Working Querying with the Criteria API
  • Query by Example
  • Overview of Java Persistence / EJB 3
  • Relationship between Java Persistence and Hibernate
  • Overview of Annotations
  • Mapping Entities with Hibernate Annotations
  • The EntityManager, Persistence Context and Persistence Unit
  • Working with Transactions – EntityTransaction, Managed, and Unmanaged Environments
  • Inserts and Updates
  • JPQL – Java Persistence Query Language
  • Versioning
  • Relationships
  • Components and Multi-Table Mapping
  • equals() and hashCode()
  • Caching and Efficiency
  • Design Considerations
  • Java EE: The Good, The Bad, and the Ugly
  • Enter the Framework
  • Spring Modules
  • Controlling Object Creation
  • Web Applications
  • Persistence Support
  • Aspect-Oriented Programming
  • Integrating Other Frameworks
  • Component-Based Software
  • JavaBeans, Reconsidered
  • The Factory Pattern
  • Inversion of Control
  • XML View: Declaring Beans
  • Java View: Using Beans
  • Singletons and Prototypes
  • Initializing Bean State
  • Complex Systems
  • Assembling Object Graphs
  • Dependency Injection
  • Single and Multiple Relationships
  • The Utility Schema
  • Autowiring
  • Bean Aliases
  • Order of Instantiation
  • Validators
  • The Errors Object
  • ValidationUtils
  • Error Messages and Localization
  • Nested Property Paths
  • Servlets and JSPs: What’s Missing
  • The MVC Pattern
  • The Front Controller Pattern
  • DispatcherServlet
  • A Request/Response Cycle
  • The Strategy Pattern
  • JavaBeans as Web Components
  • Web Application Contexts
  • Handler Mappings
  • Creating a Model
  • View Resolvers
  • HandlerMapping Options
  • ViewResolver Options
  • Chaining View Resolvers
  • Triggering Redirects
  • Working with Forms
  • Command Objects
  • The Template Method Pattern
  • Command Controllers
  • Data Binding
  • MultiActionController
  • Scope and Granularity of Command Objects
  • Property Editors
  • Custom Property Editors
  • Registrars
  • Validating Form Input
  • Form Controllers
  • AbstractFormController
  • SimpleFormController
  • Spring Custom Tags and Friends
  • Reporting Errors
  • Refining the Handling Cycle
  • The Intercepting Filter Pattern
  • Exception Handling
  • Interceptors
  • The Decorator Pattern
  • Context and Lifecycle
  • Awareness Interfaces
  • Support and Utility Classes
  • Death By XML
  • The DAO Pattern
  • The DaoSupport Hierarchy
  • The DataAccessException Hierarchy
  • JDBC DAOs
  • JdbcTemplate and RowMapper
  • Object/Relational Mapping
  • Hibernate DAOs
  • Transaction Control
  • AOP vs. Annotations

Reviews