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)

Session 40 - Hibernate - Part 2
Session 40 - Hibernate - Part 2Session 40 - Hibernate - Part 2
Session 40 - Hibernate - Part 2
PawanMM
 
Hibernate - Part 2
Hibernate - Part 2 Hibernate - Part 2
Hibernate - Part 2
Hitesh-Java
 
Hibernate Mapping
Hibernate MappingHibernate Mapping
Hibernate Mapping
InnovationM
 
Hibernate Mapping
Hibernate MappingHibernate Mapping
Hibernate Mapping
InnovationM
 
Hibernate basics
Hibernate basicsHibernate basics
Hibernate basics
AathikaJava
 
Java Hibernate Basics
Java Hibernate BasicsJava Hibernate Basics
Java Hibernate Basics
DeeptiJava
 
Inside Gorm
Inside GormInside Gorm
Inside Gorm
krimple
 
Hibernate - Part 1
Hibernate - Part 1Hibernate - Part 1
Hibernate - Part 1
Hitesh-Java
 
Hibernate using jpa
Hibernate using jpaHibernate using jpa
Hibernate using jpa
Mohammad Faizan
 
Hibernate Training Session1
Hibernate Training Session1Hibernate Training Session1
Hibernate Training Session1
Asad Khan
 
Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1
PawanMM
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
elliando dias
 
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Using the latest Java Persistence API 2 Features - Tech Days 2010 IndiaUsing the latest Java Persistence API 2 Features - Tech Days 2010 India
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Arun Gupta
 
java framwork for HIBERNATE FRAMEWORK.pptx
java framwork for HIBERNATE FRAMEWORK.pptxjava framwork for HIBERNATE FRAMEWORK.pptx
java framwork for HIBERNATE FRAMEWORK.pptx
ramanujsaini2001
 
Best training hibernate_navi_mumbai
Best training hibernate_navi_mumbaiBest training hibernate_navi_mumbai
Best training hibernate_navi_mumbai
vibrantuser
 
Hibernate II
Hibernate IIHibernate II
Hibernate II
People Strategists
 
S313431 JPA 2.0 Overview
S313431 JPA 2.0 OverviewS313431 JPA 2.0 Overview
S313431 JPA 2.0 Overview
Ludovic Champenois
 
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
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 iasi-26 nov 2011-what's new in jpa 2.0Codecamp iasi-26 nov 2011-what's new in jpa 2.0
Codecamp iasi-26 nov 2011-what's new in jpa 2.0
Codecamp Romania
 
Hibernate collection & association mapping
Hibernate collection & association mappingHibernate collection & association mapping
Hibernate collection & association mapping
Sharafat Ibn Mollah Mosharraf
 
Session 40 - Hibernate - Part 2
Session 40 - Hibernate - Part 2Session 40 - Hibernate - Part 2
Session 40 - Hibernate - Part 2
PawanMM
 
Hibernate - Part 2
Hibernate - Part 2 Hibernate - Part 2
Hibernate - Part 2
Hitesh-Java
 
Hibernate Mapping
Hibernate MappingHibernate Mapping
Hibernate Mapping
InnovationM
 
Hibernate Mapping
Hibernate MappingHibernate Mapping
Hibernate Mapping
InnovationM
 
Hibernate basics
Hibernate basicsHibernate basics
Hibernate basics
AathikaJava
 
Java Hibernate Basics
Java Hibernate BasicsJava Hibernate Basics
Java Hibernate Basics
DeeptiJava
 
Inside Gorm
Inside GormInside Gorm
Inside Gorm
krimple
 
Hibernate - Part 1
Hibernate - Part 1Hibernate - Part 1
Hibernate - Part 1
Hitesh-Java
 
Hibernate Training Session1
Hibernate Training Session1Hibernate Training Session1
Hibernate Training Session1
Asad Khan
 
Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1Session 39 - Hibernate - Part 1
Session 39 - Hibernate - Part 1
PawanMM
 
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Using the latest Java Persistence API 2 Features - Tech Days 2010 IndiaUsing the latest Java Persistence API 2 Features - Tech Days 2010 India
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Arun Gupta
 
java framwork for HIBERNATE FRAMEWORK.pptx
java framwork for HIBERNATE FRAMEWORK.pptxjava framwork for HIBERNATE FRAMEWORK.pptx
java framwork for HIBERNATE FRAMEWORK.pptx
ramanujsaini2001
 
Best training hibernate_navi_mumbai
Best training hibernate_navi_mumbaiBest training hibernate_navi_mumbai
Best training hibernate_navi_mumbai
vibrantuser
 
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...Persisting Your Objects In The Database World @ AlphaCSP Professional OSS Con...
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 iasi-26 nov 2011-what's new in jpa 2.0Codecamp iasi-26 nov 2011-what's new in jpa 2.0
Codecamp iasi-26 nov 2011-what's new in jpa 2.0
Codecamp Romania
 

More from AathikaJava (16)

Java While Loop
Java While LoopJava While Loop
Java While Loop
AathikaJava
 
Java Webservices
Java WebservicesJava Webservices
Java Webservices
AathikaJava
 
Java Type Casting
Java Type Casting Java Type Casting
Java Type Casting
AathikaJava
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
AathikaJava
 
Java Session
Java SessionJava Session
Java Session
AathikaJava
 
Java Servlet Lifecycle
Java Servlet LifecycleJava Servlet Lifecycle
Java Servlet Lifecycle
AathikaJava
 
Java Rest
Java Rest Java Rest
Java Rest
AathikaJava
 
Java Request Dispatcher
Java Request DispatcherJava Request Dispatcher
Java Request Dispatcher
AathikaJava
 
Java Polymorphism Part 2
Java Polymorphism Part 2Java Polymorphism Part 2
Java Polymorphism Part 2
AathikaJava
 
Java MVC
Java MVCJava MVC
Java MVC
AathikaJava
 
Java Polymorphism
Java PolymorphismJava Polymorphism
Java Polymorphism
AathikaJava
 
Java Spring
Java SpringJava Spring
Java Spring
AathikaJava
 
Introduction to Java
Introduction to JavaIntroduction to Java
Introduction to Java
AathikaJava
 
Java Encapsulation and Inheritance
Java Encapsulation and Inheritance Java Encapsulation and Inheritance
Java Encapsulation and Inheritance
AathikaJava
 
Java Filters
Java FiltersJava Filters
Java Filters
AathikaJava
 
Encapsulation
EncapsulationEncapsulation
Encapsulation
AathikaJava
 
Java Webservices
Java WebservicesJava Webservices
Java Webservices
AathikaJava
 
Java Type Casting
Java Type Casting Java Type Casting
Java Type Casting
AathikaJava
 
Java Servlet Lifecycle
Java Servlet LifecycleJava Servlet Lifecycle
Java Servlet Lifecycle
AathikaJava
 
Java Request Dispatcher
Java Request DispatcherJava Request Dispatcher
Java Request Dispatcher
AathikaJava
 
Java Polymorphism Part 2
Java Polymorphism Part 2Java Polymorphism Part 2
Java Polymorphism Part 2
AathikaJava
 
Java Polymorphism
Java PolymorphismJava Polymorphism
Java Polymorphism
AathikaJava
 
Introduction to Java
Introduction to JavaIntroduction to Java
Introduction to Java
AathikaJava
 
Java Encapsulation and Inheritance
Java Encapsulation and Inheritance Java Encapsulation and Inheritance
Java Encapsulation and Inheritance
AathikaJava
 
Ad

Recently uploaded (20)

Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME FlowProviding an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy SurveyTrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdfCrypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use CasesDomino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too LateKubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdfEdge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und AnwendungsfälleDomino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
panagenda
 
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdfvertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
AmirStern2
 
Ben Blair - Operating Safely in a Vibe Coding World
Ben Blair - Operating Safely in a Vibe Coding WorldBen Blair - Operating Safely in a Vibe Coding World
Ben Blair - Operating Safely in a Vibe Coding World
AWS Chicago
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementaryMurdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Trends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary MeekerTrends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary Meeker
Clive Dickens
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
If You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FMEIf You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FME
Safe Software
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven InfrastructureNo-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME FlowProviding an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy SurveyTrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdfCrypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use CasesDomino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too LateKubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdfEdge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und AnwendungsfälleDomino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
panagenda
 
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdfvertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
AmirStern2
 
Ben Blair - Operating Safely in a Vibe Coding World
Ben Blair - Operating Safely in a Vibe Coding WorldBen Blair - Operating Safely in a Vibe Coding World
Ben Blair - Operating Safely in a Vibe Coding World
AWS Chicago
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementaryMurdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Trends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary MeekerTrends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary Meeker
Clive Dickens
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
If You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FMEIf You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FME
Safe Software
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven InfrastructureNo-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
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