SlideShare a Scribd company logo
Java/J2EE Programming Training
Mapping Classes With Relational Databases
Page 2Classification: Restricted
Agenda
• Mapping Properties
• Entity Type Vs ValueTypes
• Mapping Collections
• Relationship in hibernate
• One-To-One
• One-To-One Mapping
• One-To-Many
• Many-to-Many
Page 3Classification: Restricted
Mapping Properties
Employee
int employee_id;
String first_name
String last_name
Employee
employee_id integer primary key
first_name varchar2( 200 )
last_name varchar2( 200)
EMPLOYEES
employee_id first_name last_name
100 John Mike
101 Fay Lorentz
Page 4Classification: Restricted
Hibernate Types
apping type Java type ANSI SQL Type
integer int or java.lang.Integer INTEGER
long long or java.lang.Long BIGINT
short short or java.lang.Short SMALLINT
float float or java.lang.Float FLOAT
double double or java.lang.Double DOUBLE
big_decimal java.math.BigDecimal NUMERIC
character java.lang.String CHAR(1)
string java.lang.String VARCHAR
byte byte or java.lang.Byte TINYINT
boolean boolean or java.lang.Boolean BIT
yes/no boolean or java.lang.Boolean CHAR(1) ('Y' or 'N')
true/false boolean or java.lang.Boolean CHAR(1) ('T' or 'F')
Page 5Classification: Restricted
Entity Type Vs ValueTypes
• Entity Type
• is an independent entity and has its own identity.
• has primary key
• can be referenced by other entity
• Value type
• does not have its entity depends on another object for its existence
Employee
int employee_id
String first_name
String last_name
Address
String street;
String city;
Page 6Classification: Restricted
<class table=“EMPLOYEE”>
<id name=“employee_id” type=“integer”>
<column name=“employee_id”/>
<generator class=“assigned”/>
</id>
<property name=“first_name”/>
<property name=“last_name”/>
<component name=“address” class=“Address”>
<property name=“street”/>
<property name=“city”/>
</componenet>Employee
int employee_id
String first_name
String last_name
Address address
Address
String street;
String city;
Page 7Classification: Restricted
Mapping Collections
• <Set>
• <List>
• <bag>
• <map>
Page 8Classification: Restricted
LIST
Employee
int employee_id
String first_name
String last_name
List<Skills> skillSet
Skills
int skill_id
String skill_name
String level_name1
*
Page 9Classification: Restricted
Employee
int employee_id
String first_name
String last_name
Skills
int skill_id
String skill_name
String level_name1
*
<class table=“Employee”>
<id name=“employee_id”>
<key column=“employee_id”/>
<generator class=“assigned”/>
</id>
<property name=“first_name”/>
<property name=“last_name”/>
<set name=“skills cascade=“all”>
<key column=“skill_id”/>
<one-to-many class=“Skills”/>
<class name=“Skills” table=“SKILLS”>
<id name=“skill_id”>
<column name=“skill_id”/>
<generator class=“assigned”/>
</id>
<property name=“skill_name”/>
<property name=“level_name”/>
</class>
</class>
SET
Page 10Classification: Restricted
Employee
int employee_id
String first_name
String last_name
Skills
int skill_id
String skill_name
String level_name1
*
<class table=“Employee”>
<id name=“employee_id”>
<key column=“employee_id”/>
<generator class=“assigned”/>
</id>
<property name=“first_name”/>
<property name=“last_name”/>
<list name=“skills cascade=“all”>
<key column=“skill_id”/>
<list-index column=“index_position”/>
<one-to-many class=“Skills”/>
<class name=“Skills” table=“SKILLS”>
<id name=“skill_id”>
<column name=“skill_id”/>
<generator class=“assigned”/>
</id>
<property name=“skill_name”/>
<property name=“level_name”/>
</class>
</class>
LIST
Page 11Classification: Restricted
employee_id first_name last_name
employee_id skill_id last_name
Page 12Classification: Restricted
Relationship in hibernate
• One-to-one
• one-to-many
• many-to-many
Page 13Classification: Restricted
One-To-One
package model;
public class Employee {
private int employee_id;
private String first_name;
private String last_name;
Department department;
//setters and getters
}
public class Department {
private int department_id;
private String department_name;
private int location_id;
private Employee employee;
//setters and getters
}
Page 14Classification: Restricted
One-To-One Mapping
<id name="employee_id" type="integer">
<column name="EMPLOYEE_ID"/>
<generator class="native"/>
</id>
<property name="first_name" type="string">
<column name="FIRST_NAME" not-null="true"/>
</property>
<property name="last_name" type="string">
<column name="LAST_NAME" not-null="false"/>
</property>
<one-to-one name="department" cascade="all"
class="model.Department"/>
• emp.hbm.xml
• department.hbm.xml
<id name="department_id" type="integer">
<column name="DEPARTMENT_ID"/>
<generator class="foreign">
<param name="property">employee</param>
</generator>
</id>
<one-to-one name="employee"
class="model.Employee" constrained="true"/>
<property name="department_name"
type="string">
<column name="DEPARTMENT_NAME"/>
</property>
Page 15Classification: Restricted
One-To-Many
package model;
public class Employee {
private int employee_id;
private String first_name;
private String last_name;
Set <Skills> skills;
//setters and getters
}
package model;
public class Skills{
private int skill_id
private String skill_name;
private String level_name
//setters and getters
}
Page 16Classification: Restricted
One-To-Many
employee_id first_name last_name
100 John Mike
employee_id skill_id skill_name level_name
100 1 Java Expert
100 2 C# Intermediate
100 3 WCD Expert
Page 17Classification: Restricted
One-To-Many
<class table=“Employee”>
<id name=“employee_id”>
<key column=“employee_id”/>
<generator class=“assigned”/>
</id>
<property name=“first_name”/>
<property name=“last_name”/>
<list name=“skills cascade=“all”>
<key column=“skill_id”/>
<list-index column=“index_position”/>
<one-to-many class=“Skills”/>
<class name=“Skills” table=“SKILLS”>
<id name=“skill_id”>
<column name=“skill_id”/>
<generator class=“assigned”/>
</id>
<property name=“skill_name”/>
<property name=“level_name”/>
</class>
</class>
Employee
int employee_id
String first_name
String last_name
Skills
int skill_id
String skill_name
String level_name
Page 18Classification: Restricted
Many-to-Many
Student
Student_id int
primary key
first_name
varchar2( 20 )
Course
course_id int primary key
cours_name varchar2( 20 )
duration int
Student_COURSE
student_id int
course_id int
Page 19Classification: Restricted
Many-To-Many
Student_id Student_name
100 John
course_id course_name
C1 Java
c2 C#
c3 HTML
student_id course_id
100 c1
100 c2
100 c3
Page 20Classification: Restricted
<id name="student_id" type="integer">
<column name="STUDENT_ID"/>
<generator class="native"/>
</id>
<property name="first_name" type="string">
<column name="FIRST_NAME"/>
</property>
<set name="courses" cascade="all"
table="STUDENT_COURSE">
<key column="STUDENT_ID"/>
<many-to-many class="model.Courses"
column="course_id"/>
</set>
• student.hbm.xml • courses.hbm.xml
<id name="course_id" type="integer">
<column name="COURSE_ID" />
<generator class="native"/>
</id>
<property name="courseName"
type="string">
<column name="COURSE_NAME"/>
</property>
<property name="duration" type="integer">
<column name="DURATION"/>
</property>
Page 21Classification: Restricted
Employees
int employee_id
String first_name
String last_name
Address
String city
String street
Employmet_History
int employee_id
Date start_date
Date end_Date
String jobRole
Page 22Classification: Restricted
Thank You

More Related Content

Similar to Mapping Classes with Relational Databases (20)

PPTX
Session 40 - Hibernate - Part 2
PawanMM
 
PPSX
Hibernate - Part 2
Hitesh-Java
 
PDF
Hibernate Mapping
InnovationM
 
PDF
Hibernate Mapping
InnovationM
 
PPT
Hibernate basics
AathikaJava
 
PPT
Java Hibernate Basics
DeeptiJava
 
PDF
Inside Gorm
krimple
 
PPSX
Hibernate - Part 1
Hitesh-Java
 
PDF
Hibernate using jpa
Mohammad Faizan
 
PPTX
Hibernate Training Session1
Asad Khan
 
PPTX
Session 39 - Hibernate - Part 1
PawanMM
 
PDF
JPA and Hibernate
elliando dias
 
PDF
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Arun Gupta
 
PPTX
java framwork for HIBERNATE FRAMEWORK.pptx
ramanujsaini2001
 
PPT
Best training hibernate_navi_mumbai
vibrantuser
 
PDF
Hibernate II
People Strategists
 
PDF
S313431 JPA 2.0 Overview
Ludovic Champenois
 
PPT
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Baruch Sadogursky
 
PPTX
Codecamp iasi-26 nov 2011-what's new in jpa 2.0
Codecamp Romania
 
PPTX
Hibernate collection & association mapping
Sharafat Ibn Mollah Mosharraf
 
Session 40 - Hibernate - Part 2
PawanMM
 
Hibernate - Part 2
Hitesh-Java
 
Hibernate Mapping
InnovationM
 
Hibernate Mapping
InnovationM
 
Hibernate basics
AathikaJava
 
Java Hibernate Basics
DeeptiJava
 
Inside Gorm
krimple
 
Hibernate - Part 1
Hitesh-Java
 
Hibernate using jpa
Mohammad Faizan
 
Hibernate Training Session1
Asad Khan
 
Session 39 - Hibernate - Part 1
PawanMM
 
JPA and Hibernate
elliando dias
 
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Arun Gupta
 
java framwork for HIBERNATE FRAMEWORK.pptx
ramanujsaini2001
 
Best training hibernate_navi_mumbai
vibrantuser
 
Hibernate II
People Strategists
 
S313431 JPA 2.0 Overview
Ludovic Champenois
 
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Baruch Sadogursky
 
Codecamp iasi-26 nov 2011-what's new in jpa 2.0
Codecamp Romania
 
Hibernate collection & association mapping
Sharafat Ibn Mollah Mosharraf
 

More from AathikaJava (16)

PPTX
Java While Loop
AathikaJava
 
PPTX
Java Webservices
AathikaJava
 
PPTX
Java Type Casting
AathikaJava
 
PPTX
Spring Web MVC
AathikaJava
 
PPTX
Java Session
AathikaJava
 
PPTX
Java Servlet Lifecycle
AathikaJava
 
PPTX
Java Rest
AathikaJava
 
PPTX
Java Request Dispatcher
AathikaJava
 
PPTX
Java Polymorphism Part 2
AathikaJava
 
PPTX
Java MVC
AathikaJava
 
PPTX
Java Polymorphism
AathikaJava
 
PPTX
Java Spring
AathikaJava
 
PPTX
Introduction to Java
AathikaJava
 
PPTX
Java Encapsulation and Inheritance
AathikaJava
 
PPTX
Java Filters
AathikaJava
 
PPTX
Encapsulation
AathikaJava
 
Java While Loop
AathikaJava
 
Java Webservices
AathikaJava
 
Java Type Casting
AathikaJava
 
Spring Web MVC
AathikaJava
 
Java Session
AathikaJava
 
Java Servlet Lifecycle
AathikaJava
 
Java Rest
AathikaJava
 
Java Request Dispatcher
AathikaJava
 
Java Polymorphism Part 2
AathikaJava
 
Java MVC
AathikaJava
 
Java Polymorphism
AathikaJava
 
Java Spring
AathikaJava
 
Introduction to Java
AathikaJava
 
Java Encapsulation and Inheritance
AathikaJava
 
Java Filters
AathikaJava
 
Encapsulation
AathikaJava
 
Ad

Recently uploaded (20)

PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Ad

Mapping Classes with Relational Databases

  • 1. Java/J2EE Programming Training Mapping Classes With Relational Databases
  • 2. Page 2Classification: Restricted Agenda • Mapping Properties • Entity Type Vs ValueTypes • Mapping Collections • Relationship in hibernate • One-To-One • One-To-One Mapping • One-To-Many • Many-to-Many
  • 3. Page 3Classification: Restricted Mapping Properties Employee int employee_id; String first_name String last_name Employee employee_id integer primary key first_name varchar2( 200 ) last_name varchar2( 200) EMPLOYEES employee_id first_name last_name 100 John Mike 101 Fay Lorentz
  • 4. Page 4Classification: Restricted Hibernate Types apping type Java type ANSI SQL Type integer int or java.lang.Integer INTEGER long long or java.lang.Long BIGINT short short or java.lang.Short SMALLINT float float or java.lang.Float FLOAT double double or java.lang.Double DOUBLE big_decimal java.math.BigDecimal NUMERIC character java.lang.String CHAR(1) string java.lang.String VARCHAR byte byte or java.lang.Byte TINYINT boolean boolean or java.lang.Boolean BIT yes/no boolean or java.lang.Boolean CHAR(1) ('Y' or 'N') true/false boolean or java.lang.Boolean CHAR(1) ('T' or 'F')
  • 5. Page 5Classification: Restricted Entity Type Vs ValueTypes • Entity Type • is an independent entity and has its own identity. • has primary key • can be referenced by other entity • Value type • does not have its entity depends on another object for its existence Employee int employee_id String first_name String last_name Address String street; String city;
  • 6. Page 6Classification: Restricted <class table=“EMPLOYEE”> <id name=“employee_id” type=“integer”> <column name=“employee_id”/> <generator class=“assigned”/> </id> <property name=“first_name”/> <property name=“last_name”/> <component name=“address” class=“Address”> <property name=“street”/> <property name=“city”/> </componenet>Employee int employee_id String first_name String last_name Address address Address String street; String city;
  • 7. Page 7Classification: Restricted Mapping Collections • <Set> • <List> • <bag> • <map>
  • 8. Page 8Classification: Restricted LIST Employee int employee_id String first_name String last_name List<Skills> skillSet Skills int skill_id String skill_name String level_name1 *
  • 9. Page 9Classification: Restricted Employee int employee_id String first_name String last_name Skills int skill_id String skill_name String level_name1 * <class table=“Employee”> <id name=“employee_id”> <key column=“employee_id”/> <generator class=“assigned”/> </id> <property name=“first_name”/> <property name=“last_name”/> <set name=“skills cascade=“all”> <key column=“skill_id”/> <one-to-many class=“Skills”/> <class name=“Skills” table=“SKILLS”> <id name=“skill_id”> <column name=“skill_id”/> <generator class=“assigned”/> </id> <property name=“skill_name”/> <property name=“level_name”/> </class> </class> SET
  • 10. Page 10Classification: Restricted Employee int employee_id String first_name String last_name Skills int skill_id String skill_name String level_name1 * <class table=“Employee”> <id name=“employee_id”> <key column=“employee_id”/> <generator class=“assigned”/> </id> <property name=“first_name”/> <property name=“last_name”/> <list name=“skills cascade=“all”> <key column=“skill_id”/> <list-index column=“index_position”/> <one-to-many class=“Skills”/> <class name=“Skills” table=“SKILLS”> <id name=“skill_id”> <column name=“skill_id”/> <generator class=“assigned”/> </id> <property name=“skill_name”/> <property name=“level_name”/> </class> </class> LIST
  • 11. Page 11Classification: Restricted employee_id first_name last_name employee_id skill_id last_name
  • 12. Page 12Classification: Restricted Relationship in hibernate • One-to-one • one-to-many • many-to-many
  • 13. Page 13Classification: Restricted One-To-One package model; public class Employee { private int employee_id; private String first_name; private String last_name; Department department; //setters and getters } public class Department { private int department_id; private String department_name; private int location_id; private Employee employee; //setters and getters }
  • 14. Page 14Classification: Restricted One-To-One Mapping <id name="employee_id" type="integer"> <column name="EMPLOYEE_ID"/> <generator class="native"/> </id> <property name="first_name" type="string"> <column name="FIRST_NAME" not-null="true"/> </property> <property name="last_name" type="string"> <column name="LAST_NAME" not-null="false"/> </property> <one-to-one name="department" cascade="all" class="model.Department"/> • emp.hbm.xml • department.hbm.xml <id name="department_id" type="integer"> <column name="DEPARTMENT_ID"/> <generator class="foreign"> <param name="property">employee</param> </generator> </id> <one-to-one name="employee" class="model.Employee" constrained="true"/> <property name="department_name" type="string"> <column name="DEPARTMENT_NAME"/> </property>
  • 15. Page 15Classification: Restricted One-To-Many package model; public class Employee { private int employee_id; private String first_name; private String last_name; Set <Skills> skills; //setters and getters } package model; public class Skills{ private int skill_id private String skill_name; private String level_name //setters and getters }
  • 16. Page 16Classification: Restricted One-To-Many employee_id first_name last_name 100 John Mike employee_id skill_id skill_name level_name 100 1 Java Expert 100 2 C# Intermediate 100 3 WCD Expert
  • 17. Page 17Classification: Restricted One-To-Many <class table=“Employee”> <id name=“employee_id”> <key column=“employee_id”/> <generator class=“assigned”/> </id> <property name=“first_name”/> <property name=“last_name”/> <list name=“skills cascade=“all”> <key column=“skill_id”/> <list-index column=“index_position”/> <one-to-many class=“Skills”/> <class name=“Skills” table=“SKILLS”> <id name=“skill_id”> <column name=“skill_id”/> <generator class=“assigned”/> </id> <property name=“skill_name”/> <property name=“level_name”/> </class> </class> Employee int employee_id String first_name String last_name Skills int skill_id String skill_name String level_name
  • 18. Page 18Classification: Restricted Many-to-Many Student Student_id int primary key first_name varchar2( 20 ) Course course_id int primary key cours_name varchar2( 20 ) duration int Student_COURSE student_id int course_id int
  • 19. Page 19Classification: Restricted Many-To-Many Student_id Student_name 100 John course_id course_name C1 Java c2 C# c3 HTML student_id course_id 100 c1 100 c2 100 c3
  • 20. Page 20Classification: Restricted <id name="student_id" type="integer"> <column name="STUDENT_ID"/> <generator class="native"/> </id> <property name="first_name" type="string"> <column name="FIRST_NAME"/> </property> <set name="courses" cascade="all" table="STUDENT_COURSE"> <key column="STUDENT_ID"/> <many-to-many class="model.Courses" column="course_id"/> </set> • student.hbm.xml • courses.hbm.xml <id name="course_id" type="integer"> <column name="COURSE_ID" /> <generator class="native"/> </id> <property name="courseName" type="string"> <column name="COURSE_NAME"/> </property> <property name="duration" type="integer"> <column name="DURATION"/> </property>
  • 21. Page 21Classification: Restricted Employees int employee_id String first_name String last_name Address String city String street Employmet_History int employee_id Date start_date Date end_Date String jobRole