ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ: ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Postgre 9.6 ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΠΉΠ» create-test-db-postgresql.sql ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ hibernate.cfg.xml Π² ΡΠ΅Π³Π°Ρ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ : "url Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π΄" "ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ " "ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π±Π΄" (ΡΡΡΠ»ΠΊΠ° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄ jdbc:postgresql://localhost:8080/testdb?verifyServerCertificate=false&useSSL=false&serverTimezone=UTC) ΠΠ»Ρ ΡΠ΅ΡΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ main Π² ΠΊΠ»Π°ΡΡΠ΅ ConnectionTest ΠΏΠ°ΠΊΠ΅ΡΠ° DriverTest, ΠΏΡΠΎΠΏΠΈΡΠ°Π² ΡΠ΅ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΡΠΎ ΠΈ Π² hibernate.cfg.xml
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° : ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ main ΠΊΠ»Π°ΡΡΠ° Main ΠΏΠ°ΠΊΠ΅ΡΠ° Main . ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡΠΌΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ, Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠ±ΠΎΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ randomize.properties, ΠΈΠ»ΠΈ Π²ΡΡΡΠ½ΡΡ*, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ sql Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ sql Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅* (ΠΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ Selects.txt) ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π² Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ°, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΡ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ: Game, City, Person, Project, Task, Checklist
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°Π±Π»ΠΈΡ:
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ (Person) ΠΈΠΌΠ΅Π΅Ρ Π³ΠΎΡΠΎΠ΄ (City), (OneToOne) Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΠΆΠΈΠ²ΡΡ,
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π΅ΡΡΡ (ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 1, Π½ΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅) ΡΠΏΠΈΡΠΎΠΊ Π»ΡΠ±ΠΈΠΌΡΡ
ΠΈΠ³Ρ (Game) (OneToMany),
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Project) Π΅ΡΡΡ Π΅Π³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ (Person), ΠΏΡΠΈΡΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ (OneToOne)
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΌΡ (Task) Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ (Project), ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΠ½ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ½, ΠΏΡΠΈΡΠ΅ΠΌ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ (ManyToOne)
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΌΡ (Task) Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π»ΡΠ΄Π΅ΠΉ (Person), ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π΄ Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ (OneToMany)
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΠΊΠ»ΠΈΡΡΠ° (Checklist) Π΅ΡΡΡ ΡΠ΅ΠΌΠ° (Task), ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ, ΠΏΡΠΈ ΡΠΎΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΠ»ΠΈΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅ (ManyToOne)
(1) ΠΡΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π²ΡΡΡΠ½ΡΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Person Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Project, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Person Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Task. (2) ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΠ², Π²ΡΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅, Ρ.ΠΊ. ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π² ΠΊΡΡΠ΅ Π΄Π»Ρ JVM.