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

PPTX
Ruby on Rails: Coding Guideline
PPTX
Hibernate inheritance and relational mappings with examples
PDF
Java Training in Chennai | Advanced Java Training in chennai | J2EE Training ...
PDF
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
PDF
Javanotes
PPT
Intro To Hibernate
PPTX
OOP - Introduction to Inheritance
PDF
Hibernate
Ruby on Rails: Coding Guideline
Hibernate inheritance and relational mappings with examples
Java Training in Chennai | Advanced Java Training in chennai | J2EE Training ...
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Javanotes
Intro To Hibernate
OOP - Introduction to Inheritance
Hibernate

Similar to Mapping Classes with Relational Databases (20)

PPTX
Session 40 - Hibernate - Part 2
PPSX
Hibernate - Part 2
PDF
Hibernate Mapping
PDF
Hibernate Mapping
PPT
Hibernate basics
PPT
Java Hibernate Basics
PDF
Inside Gorm
PPSX
Hibernate - Part 1
PDF
Hibernate using jpa
PPTX
Hibernate Training Session1
PPTX
Session 39 - Hibernate - Part 1
PDF
JPA and Hibernate
PDF
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
PPTX
java framwork for HIBERNATE FRAMEWORK.pptx
PPT
Best training hibernate_navi_mumbai
PDF
Hibernate II
PDF
S313431 JPA 2.0 Overview
PPT
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
PPTX
Codecamp iasi-26 nov 2011-what's new in jpa 2.0
PPTX
Hibernate collection & association mapping
Session 40 - Hibernate - Part 2
Hibernate - Part 2
Hibernate Mapping
Hibernate Mapping
Hibernate basics
Java Hibernate Basics
Inside Gorm
Hibernate - Part 1
Hibernate using jpa
Hibernate Training Session1
Session 39 - Hibernate - Part 1
JPA and Hibernate
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
java framwork for HIBERNATE FRAMEWORK.pptx
Best training hibernate_navi_mumbai
Hibernate II
S313431 JPA 2.0 Overview
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Codecamp iasi-26 nov 2011-what's new in jpa 2.0
Hibernate collection & association mapping
Ad

More from AathikaJava (16)

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

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Approach and Philosophy of On baking technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Spectroscopy.pptx food analysis technology
PDF
cuic standard and advanced reporting.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Empathic Computing: Creating Shared Understanding
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Machine learning based COVID-19 study performance prediction
PDF
KodekX | Application Modernization Development
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation_ Review paper, used for researhc scholars
Approach and Philosophy of On baking technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Spectroscopy.pptx food analysis technology
cuic standard and advanced reporting.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Empathic Computing: Creating Shared Understanding
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Per capita expenditure prediction using model stacking based on satellite ima...
Machine learning based COVID-19 study performance prediction
KodekX | Application Modernization Development
MYSQL Presentation for SQL database connectivity
Understanding_Digital_Forensics_Presentation.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

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