ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ!
ΠΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΡ
Π ΡΡΠΎΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π·Π°ΠΏΠΎΠ·Π΄Π°Π»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΎΠ±ΡΡΡΠ½Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΠ»ΡΡΠ°ΡΡ
ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ
Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Β«ΠΈΡΡ
ΠΎΠ΄Ρ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Β», Π° Π½Π΅ Β«ΠΈΡΡ
ΠΎΠ΄Ρ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ JavaΒ» (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅). ΠΡΠ±ΠΈΡΠ°Ρ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, Π²Ρ Π²ΡΡΡΠΏΠ°Π΅ΡΠ΅ Π½Π° Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡΡΡ Π±ΠΎΠ»ΠΈ ΠΈ ΡΡΡΠ°Π΄Π°Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°ΡΡΠΈ.
Π‘ΡΠ°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΌΠΎΡΠΈΠ²Π°ΠΌ
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π½Π° reddit Π² ΡΠ°Π·Π΄Π΅Π»Π°Ρ
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π°
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ Ρ ΡΠ΄ΠΈΠ²ΠΈΠ»ΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠ°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅, ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ²ΡΠΈΡΡ Ρ jOOQ, Π²ΠΎΠ·ΠΌΡΡΠ°ΡΡΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ jOOQ Π²ΡΠ΅ΡΡΠ΅Π· ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΈΠΊΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ jOOQ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅ Π½ΡΠΆΠ½ΡΠΌ, ΠΈ Π½Π΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅) ΡΠ°Π±ΠΎΡΠ° Ρ jOOQ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ: Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ Ρ (ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΉ) ΡΡ Π΅ΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π΅Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠ΄Π° jOOQ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°Π±ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ Π²Π°ΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ:
for (Record2<String, String> record : DSL.using(configuration)
// ^^^^^^^^^^^^^^^^^^^^^^^ ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ
Π²ΡΠ²Π΅Π΄Π΅Π½Π° Π½Π°
// ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅
// Π½ΠΈΠΆΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ SELECT
.select(ACTOR.FIRST_NAME, ACTOR.LAST_NAME)
// vvvvv ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°
.from(ACTOR)
.orderBy(1, 2)) {
// ...
}
ΠΠΎΠ΄ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ Π²ΡΡΡΠ½ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΠΈΠ»ΠΈ Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠ°Ρ ΡΠ΅Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
Π‘ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°ΠΌΠΈ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° β ΡΡΡΠ½ΡΠΌΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ β ΡΠ²ΡΠ·Π°Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΠΈ, ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅. ΠΠΎ, Π² ΡΠ΅Π»ΠΎΠΌ, Π²ΡΡ ΡΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π° Java ΡΡ Β«ΠΈΡΡΠΈΠ½ΡΒ», ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΡΡΡ, Π»ΠΈΠ±ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π»ΠΈΠ±ΠΎ Π²Π½Π΅ Π΅Π΅. Π Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² β ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ΅ΠΉ Β«ΠΈΡΡΠΈΠ½ΡΒ» Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΈΡΠΈΠ½.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΈΡ
Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
- Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠ°Ρ ΠΈΡΡΠΈΠ½Π° (Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½ΡΡ) β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ , Ρ.Π΄.
- ΠΠ°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΡΡΠΈΠ½Ρ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΈΡΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ²Π°Π΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ β ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ
ΠΠ° Π·Π°ΠΌΠ΅ΡΠΊΡ: Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ jOOQ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² ΡΠΈΠΏΠΎΠ²,
Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅, Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΡΠ΅ ΠΆΠ΅ Π²Π΅ΡΠΈ, ΡΡΠΎ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ:
- ΠΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ ΡΡΠΎΠ»Ρ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΠ΅ΠΉ?)
- ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΈΠΏΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ, ΡΠΎ Π΅ΡΡΡ, Β«ΠΈΡΡΠΈΠ½Π°Β» Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π°. ΠΡΠΎ Π»Π΅Π³ΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Lombok, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π½Π½ΠΎΡΠΈΡΡΠ΅Ρ βΠΈΡΡΠΈΠ½Ρβ. Π§ΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , ΡΠ°Π±ΠΎΡΠ° ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
Π ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π°?
ΠΡΠΎΠΌΠ΅ Ρ ΠΈΡΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π»ΡΡΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° β Π²ΡΡΡΠ½ΡΡ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΡΡ Π»ΡΠ΄ΠΈ, ΡΡΠΈΡΠ°ΡΡΠΈΠ΅, ΡΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Π°. ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΎΡΡ ΠΌΠ½Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ β Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ³Π΄Π° ΡΠ»ΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠΌ (Π±ΡΠ΄Ρ ΡΠΎ jOOQ, ΠΈΠ»ΠΈ JAXB, ΠΈΠ»ΠΈ Hibernate, Ρ.Π΄.), Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ ΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ API, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΡΠ΅Π½Π½ΠΎΡΡΡ.
ΠΡΠ»ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠΈ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° β ΡΠΎ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π² API ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°Π΄ ΡΠ·Π°Π±ΠΈΠ»ΠΈΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠ΄Π° (Π° Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π² Π½Π΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π°). Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π°ΠΈΠ²ΡΡΡΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ API. ΠΠΎ ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠΈΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°. Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΡΡΠ½ΡΡ ΠΏΠΈΡΠ°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΈΡΡΠΈΠ½Ρ.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΊΠ°ΠΆΡΡ, ΡΡΠΎ Ρ Π½ΠΈΡ Π½Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠ΅ΠΌ ΡΡΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ. Π£ Π½ΠΈΡ Π³ΠΎΡΡΡ ΡΡΠΎΠΊΠΈ ΡΠ΄Π°ΡΠΈ ΠΏΠΎ ΠΈΡ Π‘ΡΠΏΠ΅Ρ-ΠΡΠΎΠ΄ΡΠΊΡΡ. ΠΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΈΡΠ΅ΡΠ΅ΠΌ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ, ΡΡΠΏΠ΅Π΅ΡΡΡ. Π― ΠΈΠΌ ΠΎΡΠ²Π΅ΡΡ:
ΠΠΎ Π² Hibernate / JPA ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Β«ΠΏΠΎΠ΄ JavaΒ».
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ»Ρ Hibernate ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π±Π»Π°Π³ΠΎ, ΠΈ ΠΏΡΠΎΠΊΠ»ΡΡΡΠ΅. Π Hibernate ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠ°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ, Π²ΠΎΡ ΡΠ°ΠΊ:
@Entity
class Book {
@Id
int id;
String title;
}
Π ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π» Hibernate β Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Β«Π΄Π΅ΡΠ°Π»ΠΈΒ» ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΡΡΡΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π½Π° DDL Π²Π°ΡΠ΅Π³ΠΎ Β«Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ°Β» SQL:
CREATE TABLE book (
id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
title VARCHAR(50),
CONSTRAINT pk_book PRIMARY KEY (id)
);
CREATE INDEX i_book_title ON book (title);
β¦ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Π³ΠΎΠ½ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΡΡΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΠΈ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅. Π― ΡΠ»ΡΠΊΠ°Π²ΠΈΠ».
- Π Hibernate Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°?
- Π Hibernate ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π² TITLE? β Ρ ΡΠΎΡΠ½ΠΎ Π·Π½Π°Ρ, ΠΎΠ½ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ.
- A Hibernate ΡΠΎΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΊΠ»ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠΌ Π² Identity Specification?
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅Ρ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Π½ΡΠ»Ρ, ΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ±ΡΠΎΡΠΈΡΡ ΡΡΠ°ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. Π’Π°ΠΊ, ΡΡΡΠ½ΠΎΡΡΡ Book Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΠ΄:
@Entity
@Table(name = "book", indexes = {
@Index(name = "i_book_title", columnList = "title")
})
class Book {
@Id
@GeneratedValue(strategy = IDENTITY)
int id;
String title;
}
ΠΡΡΡΠΎ. Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ. ΠΠΏΡΡΡ ΠΆΠ΅, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ.
ΠΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π·Π° ΡΡΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°ΠΏΠ»Π°ΡΠΈΡΡ
Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ³Π΄Π° ΡΠ°ΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ:
Π ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅ ΡΠΆΠ΅ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠ±ΡΠΎΡΠΈΡΡ ΡΡΠ°ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π°ΡΠ°ΡΡ Π²ΡΠ΅ Ρ ΡΠΈΡΡΠΎΠ³ΠΎ Π»ΠΈΡΡΠ°. ΠΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡ Π² ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ.
ΠΡΠ½ΡΠ½Π΅ ΠΈ Π½Π°Π²ΡΠ΅Π³Π΄Π° Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΈΡΠ°ΡΡ
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ Π³ΠΎΡΡΡΠΈΠ΅ ΠΏΠ°ΡΡΠΈ. Π ΠΈΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΆΠ΅ Π²Ρ Π½Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈΡΡ ΠΈ Π½Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π° Π³Π»Π°Π΄ΠΊΡΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Π²Π°ΡΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ, Π²Ρ Π²ΡΠ΅ Π΄ΠΈΠΊΠΎ ΠΏΡΠΎΠΏΠ°ΡΡΠΈΠ²Π°Π΅ΡΠ΅. Π Π·Π°ΡΠ΅ΠΌ ΡΠΆΠ΅ Π½Π΅ ΡΡΠΏΠ΅Π²Π°Π΅ΡΠ΅ Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π ΡΡΠ³Π°Π΅ΡΠ΅ Hibernate, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅Π³Π΄Π° Π²ΠΈΠ½ΠΎΠ²Π°Ρ ΠΊΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ Π²Ρβ¦
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΈΠ½Π°ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π½Π° Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ ΠΊΡΡΠ³Π»ΡΠ΅ ΠΊΠΎΠ»Π΅ΡΠ°.
Π‘Π½Π°ΡΠ°Π»Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
ΠΠ°ΡΡΠΎΡΡΠ°Ρ Β«ΠΈΡΡΠΈΠ½Π°Β» Π² ΡΡ
Π΅ΠΌΠ΅ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΈ Β«ΡΡΠ²Π΅ΡΠ΅Π½ΠΈΡΠ΅ΡΒ» Π½Π°Π΄ Π½Π΅ΠΉ ΠΊΡΠΎΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
. Π‘Ρ
Π΅ΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΠΈ Π½ΠΈΠ³Π΄Π΅ Π±ΠΎΠ»ΡΡΠ΅, ΠΈ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΅ΡΡΡ ΠΊΠΎΠΏΠΈΡ ΡΡΠΎΠΉ ΡΡ
Π΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ Π½Π°Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡ
Π΅ΠΌΡ ΠΈ Π΅Π΅ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ, Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΡΠΌΠΎ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
β ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΈ Ρ
ΡΠ°Π½ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΡΠΎ ΡΡΠ°ΡΠ°Ρ Π΄Π°ΠΆΠ΅ ΠΈΠ·Π±ΠΈΡΠ°Ρ ΠΌΡΠ΄ΡΠΎΡΡΡ. ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ β ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΎ. ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ β Ρ
ΠΎΡΠΎΡΠΎ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ β Ρ
ΠΎΡΠΎΡΠΎ.
ΠΡΠΈΡΠ΅ΠΌ, ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ Π²ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Oracle, Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ:
- Π ΠΊΠ°ΠΊΠΎΠΌ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°
- ΠΠ°ΠΊΠΎΠ΅ Ρ Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ PCTFREE
- ΠΠ°ΠΊΠΎΠ² ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΡΡΠ° Π² Π²Π°ΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ)
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠ΅ ΡΡΠΎ ΠΈ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π² ΠΌΠ°Π»ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΠΎΠ±Π»Π°ΡΡΡ Β«Π±ΠΎΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Β» β ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ°Π½ΡΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π²ΡΡΠ΅. ΠΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ORM, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ½Π΅ Π΄ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π²ΠΈΠ΄Π΅ΡΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, jOOQ) Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΠΎΠΏΡΠΈΠΉ DDL, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ORM ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΠΈΡΠ°ΡΡ DDL.
ΠΠΎ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Ρ ΠΎΡΠΎΡΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° Π²ΡΡΡΠ½ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° DDL. ΠΡΠ±ΠΎΠΉ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ DDL ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΡΡ Π΅Π΅ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ.
Π§ΡΠΎ Π½Π°ΡΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ?
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠΎΠΏΠΈΡ ΡΡ Π΅ΠΌΡ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. ΠΠ·Π»ΠΈΡΠ½Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ. ΠΠ°ΠΊ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ? ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠ΄Π°.
ΠΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΡ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· SQL. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ°Ρ SQL:
-- H2, HSQLDB, MySQL, PostgreSQL, SQL Server
SELECT table_schema, table_name
FROM information_schema.tables
-- DB2
SELECT tabschema, tabname
FROM syscat.tables
-- Oracle
SELECT owner, table_name
FROM all_tables
-- SQLite
SELECT name
FROM sqlite_master
-- Teradata
SELECT databasename, tablename
FROM dbc.tables
ΠΡΠΈ Π·Π°ΠΏΡΠΎΡΡ (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠΌ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ) ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΠ·ΠΎΠ²Π° DatabaseMetaData.getTables()
ΠΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°ΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π²Π°Ρ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅.
- ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ JDBC ΠΈΠ»ΠΈ Spring, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π±ΠΎΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ
- ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ JPA, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ
- ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ jOOQ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠ°-ΠΌΠΎΠ΄Π΅Π»Ρ jOOQ
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π²Π°ΡΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΌ API (Π½Π°ΠΏΡ. jOOQ ΠΈΠ»ΠΈ JPA), ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠ΅ΡΠ°-ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Π½Π°ΡΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ. ΠΠΎΠ·ΡΠΌΠ΅ΠΌ, Ρ
ΠΎΡΡ Π±Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ΡΠ²Π½ΡΡ
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ,
Π’Π΅ΠΏΠ΅ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΏΡΠΈΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ALTER TABLE book RENAME COLUMN title TO book_title;
ΠΡ Π² ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡ Π΄Π²Π°ΠΆΠ΄Ρ? ΠΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠΎΡΡΠΎ ΡΠΈΠΊΡΠΈΡΡΠ΅ΠΌ DDL, ΠΏΡΠΎΠ³ΠΎΠ½ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· Π²Π°Ρ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΡΡΠ½ΠΎΡΡΡ:
@Entity
@Table(name = "book", indexes = {
// ΠΡ ΠΎΠ± ΡΡΠΎΠΌ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈΡΡ?
@Index(name = "i_book_title", columnList = "book_title")
})
class Book {
@Id
@GeneratedValue(strategy = IDENTITY)
int id;
@Column("book_title")
String bookTitle;
}
ΠΠΈΠ±ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ jOOQ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ DDL ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ΅, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π±ΡΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ) Π·Π°ΡΡΠΎΠ½ΡΡ ΠΏΡΠΈΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΈΡΡΠΈΠ½Π°
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ, Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΡΡΠΈΠ½Ρ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ β ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊ ΡΡΠΎΠΌΡ ΡΡΡΠ΅ΠΌΠΈΡΡΡΡ ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ enterprise-ΠΏΡΡΠ°Π½ΠΈΡΡ, Π³Π΄Π΅ Β«ΠΈΡΡΠΈΠ½Π°Β» ΡΡΠ°Π·Ρ Π²Π΅Π·Π΄Π΅ ΠΈ Π½ΠΈΠ³Π΄Π΅. ΠΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅ΡΠ΅ΡΡ XML-ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ XSD. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΌΠ΅ΡΠ°-ΠΌΠΎΠ΄Π΅Π»Ρ INFORMATION_SCHEMA ΠΈΠ· jOOQ Π² XML-ΡΠΎΡΠΌΠ΅:
- XSD Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ½ΡΡΠ½Π°
- XSD ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅Π½Ρ XML ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° Π²ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ
- XSD Ρ ΠΎΡΠΎΡΠΎ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°Π·Π²ΠΈΡΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ
- XSD ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ΄ Java ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ XJC
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠ½ΠΊΡ Π²Π°ΠΆΠ΅Π½. ΠΡΠΈ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ Ρ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ XML-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΠΈ Π½Π°ΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠ³ΠΎ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ JAXB, XJC ΠΈ XSD. ΠΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π½ΡΠΌ Π±Π΅Π·ΡΠΌΠΈΠ΅ΠΌ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ, ΠΏΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Β«ΡΠ½Π°ΡΠ°Π»Π° JavaΒ», Π³Π΄Π΅ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π½Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Java, ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΊΠ°ΠΊ-ΡΠΎ Π²Π½ΡΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° XML ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. XML, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±ΡΠ» Π±Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°, Π½Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½, ΠΈ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΎΠ²Π½Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ (SLA), ΠΌΡ Π±Ρ ΡΡΠ°Π·Ρ Π΅Π³ΠΎ Π·Π°ΠΏΠΎΡΠΎΠ»ΠΈ.
Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ API Π½Π° JSON, Π½ΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π΄ΡΡΠ³Π°Ρ ΠΈΡΡΠΎΡΠΈΡ, Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π· ΠΏΠΎΡΡΠ³Π°ΡΡΡβ¦
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ : ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅
Π Π°Π±ΠΎΡΠ°Ρ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΏΠΎΡ ΠΎΠΆΠΈ. ΠΠ°Π·Π° Π²Π»Π°Π΄Π΅Π΅Ρ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΡ Π΅ΠΌΠΎΠΉ. ΠΡΠ±ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²Π½ΠΎΡΠΈΠΌΡΠ΅ Π² ΡΡ Π΅ΠΌΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° DDL, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΡΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΡΡΠΈΠ½Ρ.
ΠΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΏΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° Java Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ jOOQ ΠΈ Hibernate ΠΈΠ»ΠΈ JDBC (ΠΈΠ»ΠΈ Π²ΡΠ΅Ρ ΡΡΠ°Π·Ρ). ΠΡΡΠ³ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Perl (ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠΆΠ΅Π»Π°ΡΡ ΠΈΠΌ ΡΠ΄Π°ΡΠΈ), ΡΡΠ΅ΡΡΠΈ β Π½Π° C#. ΠΡΠΎ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ. ΠΠ»Π°Π²Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ΄Π΅Π»ΠΈ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ORM, ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°, ΠΏΠ»ΠΎΡ ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ, ΠΈ ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ.
ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠ°ΠΉΡΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ. Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠ°ΠΉΡΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ. Π Π°Π±ΠΎΡΠ°ΠΉΡΠ΅, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΡΡΠΎΠΉΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΊΠ»ΡΡΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π±ΡΠ»ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π΅Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡ. Π ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ ΠΊΠΎΠ΄Π°. ΠΠ½ΠΈ Ρ ΠΎΡΠΎΡΠΈΠ΅. Π‘ Π½ΠΈΠΌΠΈ Π²Ρ ΡΡΠ°Π½Π΅ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π΅Π΅. ΠΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ β ΠΈ Π΄Π°Π»Π΅Π΅ Π²Π°Ρ ΠΆΠ΄ΡΡ Π³ΠΎΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΠΎΠΆΠΈΡΡΡ ΠΈΡΡΠΎΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠΊΠ° Π½Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΠ΅, ΠΏΠΎΡΠΎΠΌ.
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
ΠΠ»Ρ ΡΡΠ½ΠΎΡΡΠΈ: ΠΡΠ° ΡΡΠ°ΡΡΡ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΏΡΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»Ρ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ³ΠΈΠ±Π°ΡΡ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ (Ρ.Π΅., ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ, Ρ.Π΄., Ρ.ΠΏ). Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ, ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π² Π½Π΅ΠΌ ΡΠ°ΠΌΠΎΠΌ Π½Π΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠ°ΡΡΡΠ΅ Β«ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°Β». Π’Π°ΠΊΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Ρ Π²Π°Ρ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅.
Π Π΄Π²ΡΡ ΡΡΠΎΠ²Π½Π΅Π²ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΊΠΎΠ΅-Π³Π΄Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ, ΡΠ°ΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌ ΡΡΠΎΠ²Π΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΌΠ½Π΅ Β«ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉΒ», ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΈ Ρ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ», ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΡΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ. ΠΠΎΡ ΠΏΠ°ΡΠ° ΡΠ°ΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π°ΠΉΠ΄ΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅):
- ΠΠΎΠ³Π΄Π° ΡΡ Π΅ΠΌΠ° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Π°, ΠΈ Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅. Π£Ρ. Π’ΡΡ Π±Π΅Π· Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ β Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ.
- ΠΠΎΠ³Π΄Π° ΡΡ
Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° Π»Π΅ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ»Π΅Π³ΠΊΠ° Π²ΡΡΡΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°
entity attribute value , Ρ.Π΅., Ρ Π²Π°Ρ Π² ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅Ρ ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΡΠ°ΡΡΡΡ Π΄Π°ΠΆΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Π»ΡΠ·Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π Π‘Π£ΠΠ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΡΠΈΡΠΎΠ΄Π΅ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Ρ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π Π‘Π£ΠΠ, ΡΡ
Π΅ΠΌΠ° ΠΈΠ·Π²Π΅ΡΡΠ½Π° Π·Π°ΡΠ°Π½Π΅Π΅, ΠΎΠ½Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ Π Π‘Π£ΠΠ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Β«ΠΈΡΡΠΈΠ½ΡΒ», Π° Π²ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±Π·Π°Π²ΠΎΠ΄ΠΈΡΡΡΡ ΠΊΠΎΠΏΠΈΡΠΌΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΠΎΡ Π½Π΅Π΅. Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ΄Π°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com