Download presentation
Presentation is loading. Please wait.
Published byRachel Carroll Modified over 9 years ago
1
Agenda What is Hibernate Spring Integration Questions Overview
Benefits Example Spring Integration Questions
2
What is Hibernate? Popular Open Source Object/Relational Mapping (ORM) tool Transparent persistence for POJOs (Plain Old Java Objects)
3
Object/Relational Mapping
JavaObject int id; String name; String getName() int getId() void setName(String) void setId(int) SQL Table id [int] primary key, name [varchar(50)] Magic Happens Here (O/R Mapper – i.e. Hibernate)
4
Other ORM Solutions “Open” iBatis SQL Maps JDO JPA Commercial TopLink
5
Why Hibernate? Retains natural object model (transparent)
Minimizes Code Does not require a container Model is not tied to persistance implementation
6
Hibernate's Goal Remove 95% of common data persistence problems
9
How do you use it? Act on your data model Query in SQL and/or HQL
... or using your object model
10
Auction Object Model
11
Persistant Class Default Constructor Getters/Setters
public class AuctionItem { private Long _id; private Set _bids; private Bid _successfulBid private String _description; public Long getId() { return _id; } private void setId(Long id) { _id = id; public String getDescription() { return _description; public void setDescription(String desc) { _description=desc; … Default Constructor Getters/Setters Collections use interface types Identifier property
12
XML Mapping Readable metadata Column/Table map Key Generation
<class name=“AuctionItem” table=“AUCTION_ITEM”> <id name=“id” column=“ITEM_ID”> <generator class=“native”/> </id> <property name=“description” column=“DESCR”/> <many-to-one name=“successfulBid” column=“SUCCESSFUL_BID_ID”/> <set name=“bids” cascade=“all” lazy=“true”> <key column=“ITEM_ID”/> <one-to-many class=“Bid”/> </set> </class> Readable metadata Column/Table map Key Generation Collections Fetching Strategies
13
Working with Data Retrieve an AuctionItem and change description
Session session = sessionFactory.openSession(); Transaction tx = s.beginTransaction(); AuctionItem item = (AuctionItem) session.get(ActionItem.class, itemId); item.setDescription(newDescription); tx.commit(); session.close();
14
Working with Data Retrieve an AuctionItem and create a new persistent Bid Bid bid = new Bid(); bid.setAmount(bidAmount); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); AuctionItem item = (AuctionItem) session.get(ActionItem.class, itemId); bid.setItem(item); item.getBids().add(bid); tx.commit(); session.close();
15
Hibernate in code Retrieve an AuctionItem and create a new persistent Bid Bid bid = new Bid(); bid.setAmount(bidAmount); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); AuctionItem item = (AuctionItem) session.get(ActionItem.class, itemId); bid.setItem(item); item.getBids().add(bid); tx.commit(); session.close();
16
Hibernate in code Retrieve an AuctionItem and create a new persistent Bid Session session = sf.openSession(); Transaction tx = session.beginTransaction(); AuctionItem item = (AuctionItem) session.get(ActionItem.class, itemId); tx.commit(); session.close(); item.setDescription(newDescription); Session session2 = sf.openSession(); Transaction tx = session2.beginTransaction(); session2.update(item); session2.close();
17
Benefits Metadata controlled persistence
Transparent - working with the model, not the data access technology Pooling, Caching, Transactions can all be handled outside of our code
18
Integrating Spring and Hibernate
19
Spring and Hibernate Benefits Examples
20
Benefits Resource Management Extended Transaction Support
IoC / AOP Session Management Extended Transaction Support JTA and/or JDBC Flexible Transaction Demarcation Programmatic Declarative (Spring's XML config) HibernateTemplate Simplifies Hibernate API
21
Spring IoC Session POJO DAO setSession() save()
22
Spring Interceptors (AOP)
Business Logic Interceptor DAO getCatById() save(Cat) Session Spring Framework
23
Spring’s HibernateTemplate
Hibernate Only: public User getUserBy Address(final String ) { try { Session session = sessionFactory.openSession(); List list = session.find( "from User user where user. =?", , Hibernate.STRING); return (User) list.get(0); } finally { session.close(); } } HibernateTemplate: public User getUserBy Address(final String ) { List list = getHibernateTemplate().find( "from User user where user. =?", , Hibernate.STRING); return (User) list.get(0); }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.