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)

PPT
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
PPT
PDF
Java Programming | Java Tutorial For Beginners | Java Training | Edureka
ZIP
Rails and alternative ORMs
PDF
Dependency Injection
PPTX
Building maintainable javascript applications
PPTX
Advance java session 14
PDF
Efficient Rails Test Driven Development (class 3) by Wolfram Arnold
PPTX
Hibernate
PDF
Construction Techniques For Domain Specific Languages
PDF
JRuby e DSL
PPTX
Javatwo2012 java frameworkcomparison
PDF
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
PDF
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17
PPTX
Robotframework
PDF
NHibernate (The ORM For .NET Platform)
PDF
Nhibernatethe Orm For Net Platform 1226744632929962 8
PDF
Model-Driven Software Development - Strategies for Design & Implementation of...
PDF
Strategies for Design & Implementation of Domain-Specific Languages
PPT
Introduction to hibernate
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Java Programming | Java Tutorial For Beginners | Java Training | Edureka
Rails and alternative ORMs
Dependency Injection
Building maintainable javascript applications
Advance java session 14
Efficient Rails Test Driven Development (class 3) by Wolfram Arnold
Hibernate
Construction Techniques For Domain Specific Languages
JRuby e DSL
Javatwo2012 java frameworkcomparison
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17
Robotframework
NHibernate (The ORM For .NET Platform)
Nhibernatethe Orm For Net Platform 1226744632929962 8
Model-Driven Software Development - Strategies for Design & Implementation of...
Strategies for Design & Implementation of Domain-Specific Languages
Introduction to hibernate
Ad

More from AathikaJava (17)

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
PPT
Hibernate basics
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
Hibernate basics
Java Filters
Encapsulation
Ad

Recently uploaded (20)

PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Machine Learning_overview_presentation.pptx
PPTX
A Presentation on Artificial Intelligence
PPTX
MYSQL Presentation for SQL database connectivity
PDF
cuic standard and advanced reporting.pdf
PPT
Teaching material agriculture food technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Encapsulation theory and applications.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Programs and apps: productivity, graphics, security and other tools
Spectroscopy.pptx food analysis technology
Machine Learning_overview_presentation.pptx
A Presentation on Artificial Intelligence
MYSQL Presentation for SQL database connectivity
cuic standard and advanced reporting.pdf
Teaching material agriculture food technology
Digital-Transformation-Roadmap-for-Companies.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Encapsulation theory and applications.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Diabetes mellitus diagnosis method based random forest with bat algorithm
“AI and Expert System Decision Support & Business Intelligence Systems”
Advanced methodologies resolving dimensionality complications for autism neur...
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
Building Integrated photovoltaic BIPV_UPV.pdf
Electronic commerce courselecture one. Pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf

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