- Published on
Introduction to Object-Relational Mapping (ORM)
- Authors
- Name
- Gary Huynh
- @huynhthienthach
Ahoy, matey! Prepare yerself for a journey into the grand old seas of Object-Relational Mapping
, or as we seasoned sailors like to call it, ORM
! Avast ye, it's not an ol' sea monster, but a treasure chest full of wonder that'll make the lives of us Java folks a whole lot easier.
Y'see, ORM
is like a magical parrot that can speak two languages: the language of your Java
objects, and the language of your database
. Imagine yer objects
are pirates and yer database
is the treasure chest. ORM
is the map
that helps ye translate
between the two, so ye can store yer pirates (objects
) in the chest (database
), and find 'em again when ye need 'em.
Java
comes with several fine tools for this job, like Hibernate
, EclipseLink
, and the Java Persistence API (JPA)
.
Take a gander at this simple example using JPA
:
@Entity
public class Pirate {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String favoriteRum;
// getters and setters...
}
public class PirateDao {
private EntityManager entityManager;
public PirateDao(EntityManager entityManager) {
this.entityManager = entityManager;
}
public void savePirate(Pirate pirate) {
entityManager.getTransaction().begin();
entityManager.persist(pirate);
entityManager.getTransaction().commit();
}
public Pirate findPirate(Long id) {
return entityManager.find(Pirate.class, id);
}
}
With this, ye can store a Pirate object
in your database
and fetch it back, without having to write a single line of SQL
. Now ain't that a treasure worth diving for!
Remember, yer ORM
can do a lot more than this. It can help with relationships
between entities
, inheritance
, and all sorts
of advanced mappings
. But beware, ye don't want to misuse it, or ye might find yerself lost at sea with performance issues
. A good pirate is always mindful of when to use the map, and when to navigate by the stars.
That's all for today, ye swashbucklers. Keep yer cutlasses sharp and yer code sharper!