Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
std_hibernate
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
std_hibernate
Commits
3e3c85d8
Commit
3e3c85d8
authored
Oct 31, 2024
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update
parent
f573fea5
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
158 additions
and
0 deletions
+158
-0
P6_Update.java
src/main/java/przyklady/P6_Update.java
+59
-0
P7_AktualizujRekord2.java
src/main/java/przyklady/P7_AktualizujRekord2.java
+51
-0
P8_DodajNoweRekordy.java
src/main/java/przyklady/P8_DodajNoweRekordy.java
+48
-0
No files found.
src/main/java/przyklady/P6_Update.java
0 → 100644
View file @
3e3c85d8
package
przyklady
;
import
hr.model.Department
;
import
hr.model.Employee
;
import
hr.model.Job
;
import
jakarta.persistence.EntityManager
;
import
jakarta.persistence.EntityManagerFactory
;
import
jakarta.persistence.Persistence
;
import
java.math.BigDecimal
;
import
java.util.Scanner
;
public
class
P6_Update
{
public
static
void
main
(
String
[]
args
)
{
Scanner
sc
=
new
Scanner
(
System
.
in
);
try
(
EntityManagerFactory
emf
=
Persistence
.
createEntityManagerFactory
(
"hr"
);
EntityManager
em
=
emf
.
createEntityManager
())
{
em
.
getTransaction
().
begin
();
while
(
true
)
{
System
.
out
.
print
(
"\nPodaj id pracownika: "
);
int
id
=
sc
.
nextInt
();
sc
.
nextLine
();
if
(
id
<
0
)
break
;
Employee
employee
=
em
.
find
(
Employee
.
class
,
id
);
if
(
employee
==
null
)
{
System
.
out
.
println
(
"Nie ma pracownika o takim ID"
);
continue
;
}
System
.
out
.
println
(
employee
.
getFirstName
()
+
" "
+
employee
.
getLastName
());
System
.
out
.
print
(
"Podaj nowe nazwisko: "
);
String
noweNazwisko
=
sc
.
nextLine
();
employee
.
setLastName
(
noweNazwisko
);
System
.
out
.
print
(
"Podaj zmianę pensji: "
);
BigDecimal
zmiana
=
sc
.
nextBigDecimal
();
if
(
zmiana
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
employee
.
setSalary
(
employee
.
getSalary
().
add
(
zmiana
));
}
// Wywołanie flush zsynchronizowałoby zmiany dokonane w pamięci ze stanem bazy danych
// (wykonałoby UPDATE, INSERT, DELETE)
// ale bez zakomitowania zmian.
// em.flush();
System
.
out
.
println
(
employee
.
getFirstName
()
+
" "
+
employee
.
getLastName
());
}
// Niezależnie od użycia flush, transakcję na końcu trzeba zakomitować, aby zmiany zostały zapisane.
// Jeśli robimy commit, to nie potrzebujemy flush
System
.
out
.
println
(
"\nCzy zapisać zmiany? [T/N]"
);
String
command
=
sc
.
nextLine
();
switch
(
command
.
toUpperCase
())
{
case
"T"
->
em
.
getTransaction
().
commit
();
case
"N"
->
em
.
getTransaction
().
rollback
();
}
}
}
}
src/main/java/przyklady/P7_AktualizujRekord2.java
0 → 100644
View file @
3e3c85d8
package
przyklady
;
import
jakarta.persistence.EntityManager
;
import
jakarta.persistence.EntityManagerFactory
;
import
jakarta.persistence.Persistence
;
import
hr.model.Department
;
import
hr.model.Employee
;
public
class
P7_AktualizujRekord2
{
public
static
void
main
(
String
[]
args
)
{
try
(
EntityManagerFactory
emf
=
Persistence
.
createEntityManagerFactory
(
"hr"
);
EntityManager
em
=
emf
.
createEntityManager
())
{
em
.
getTransaction
().
begin
();
Employee
king
=
em
.
find
(
Employee
.
class
,
100
);
System
.
out
.
println
(
king
.
getId
()
+
" "
+
king
.
getFirstName
()
+
" "
+
king
.
getLastName
());
Employee
kochhar
=
em
.
find
(
Employee
.
class
,
101
);
System
.
out
.
println
(
kochhar
.
getId
()
+
" "
+
kochhar
.
getFirstName
()
+
" "
+
kochhar
.
getLastName
());
Department
dep
=
em
.
find
(
Department
.
class
,
90
);
System
.
out
.
println
(
"departament: "
+
dep
.
getDepartmentName
());
System
.
out
.
println
(
dep
==
king
.
getDepartment
());
System
.
out
.
println
(
dep
==
kochhar
.
getDepartment
());
System
.
out
.
println
();
System
.
out
.
println
(
"Departamenty przed zmianą: "
+
dep
.
getDepartmentName
()
+
" "
+
king
.
getDepartment
().
getDepartmentName
()
+
" "
+
kochhar
.
getDepartment
().
getDepartmentName
());
king
.
getDepartment
().
setDepartmentName
(
"Nowa nazwa"
);
// king.getDepartment().setDepartmentName("Executive");
System
.
out
.
println
(
"Departamenty po zmianie: "
+
dep
.
getDepartmentName
()
+
" "
+
king
.
getDepartment
().
getDepartmentName
()
+
" "
+
kochhar
.
getDepartment
().
getDepartmentName
());
System
.
out
.
println
(
dep
==
king
.
getDepartment
());
System
.
out
.
println
(
dep
==
kochhar
.
getDepartment
());
em
.
getTransaction
().
commit
();
System
.
out
.
println
(
"Zapisane"
);
}
}
}
src/main/java/przyklady/P8_DodajNoweRekordy.java
0 → 100644
View file @
3e3c85d8
package
przyklady
;
import
jakarta.persistence.EntityManager
;
import
jakarta.persistence.EntityManagerFactory
;
import
jakarta.persistence.Persistence
;
import
hr.model.Country
;
import
hr.model.Location
;
import
hr.model.Region
;
public
class
P8_DodajNoweRekordy
{
public
static
void
main
(
String
[]
args
)
{
try
(
EntityManagerFactory
emf
=
Persistence
.
createEntityManagerFactory
(
"hr"
);
EntityManager
em
=
emf
.
createEntityManager
())
{
em
.
getTransaction
().
begin
();
// Utworzyć nowy kraj (my podajemy id) i nową lokalizację (id zostanie wygenerowane).
Region
region
=
em
.
find
(
Region
.
class
,
1
);
Country
polska
=
new
Country
();
polska
.
setCountryId
(
"PL"
);
polska
.
setCountryName
(
"Polska"
);
polska
.
setRegion
(
region
);
System
.
out
.
println
(
"Zaraz wykonam country.persist..."
);
em
.
persist
(
polska
);
System
.
out
.
println
(
"Wykonane"
);
// Dla lokalizacji nie podajemy ID - ono zostanie wygenerowane z sekwencji.
Location
loc
=
new
Location
();
loc
.
setCountry
(
polska
);
loc
.
setStreetAddress
(
"Jasna"
);
loc
.
setCity
(
"Warszawa"
);
loc
.
setPostalCode
(
"00-123"
);
System
.
out
.
println
(
"id przed dodaniem "
+
loc
.
getId
());
em
.
persist
(
loc
);
System
.
out
.
println
(
"id po dodaniu "
+
loc
.
getId
());
// Standard JPA nie daje gwarancji, że id zostało w tym momencie ustawione,
// ale Hibernate tak to implementuje.
em
.
getTransaction
().
commit
();
// Po zrobieniu commit id na pewno zostało nadane.
System
.
out
.
println
(
"id po commit "
+
loc
.
getId
());
System
.
out
.
println
(
"Zapisano."
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment