рд╕рддреНрдп рдкрд╣рд▓реЗ, рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ

рд╣реЗ рд╣рдмрд░!

рд╣рдо рд╡рд┐рд╖рдп рдкрд░ рд╢реЛрдз рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдЬрд╛рд╡рд╛ ╨╕ рд╡рд╕рдВрдд, рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрддрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЖрдЬ рд╣рдо рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпреЛрдВ, рдмрдбрд╝реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рди рдХрд┐ рдЬрд╛рд╡рд╛ рдХреЛрдб, рдЬреЛ рдирд┐рд░реНрдгрд╛рдпрдХ рдорд╣рддреНрд╡ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдирд┐рдпрдо рдХреЗ рдХреНрдпрд╛ рдЕрдкрд╡рд╛рдж рд╣реИрдВред

рдЗрд╕ рджреЗрд░ рдХреЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЛ "рдЬрд╛рд╡рд╛ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ" (рдпрд╛ рдЬреЛ рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рд╖рд╛ рдЖрдк рд╣реИрдВ) рдХреЗ рдмрдЬрд╛рдп "рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ" рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛)ред рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдЕрдкрдирд╛рдХрд░, рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЦреБрдж рдХреЛ рджрд░реНрдж рдФрд░ рдкреАрдбрд╝рд╛ рдХреЗ рд▓рдВрдмреЗ рд░рд╛рд╕реНрддреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд▓реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдПрдХ рд╕рд╡рд╛рд▓, рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд░реЗрдбрд┐рдЯ рдкрд░ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдЪрд░реНрдЪрд╛рдПрдБ /рдЖрд░/рдЬрд╛рд╡рд╛ ╨╕ / рдЖрд░ / рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ.

рдХреЛрдб рдЬрдирд░реЗрд╢рди

рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдХрд░ рдХрд┐рддрдирд╛ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд░реНрдЧ, рдЬреЛ 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)) {
    // ...
}

рдХреЛрдб рдпрд╛ рддреЛ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдмрд╛рд╣рд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдкреБрдирд░реНрдЬрдирди рддреБрд░рдВрдд рдмрд╛рдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдлреНрд▓рд╛рдИрд╡реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди, рдЬреЛ рдореИрдиреНрдпреБрдЕрд▓ рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.

рд╕реНрд░реЛрдд рдХреЛрдб рдЬрдирд░реЗрд╢рди

рдХреЛрдб рдЬрдирд░реЗрд╢рди рдХреЗ рдЗрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╡рд┐рднрд┐рдиреНрди рджрд░реНрд╢рди, рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВ - рдореИрдиреБрдЕрд▓ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд - рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдкреВрд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЙрд╕ "рд╕рдЪреНрдЪрд╛рдИ" рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рднреАрддрд░ рдпрд╛ рдЙрд╕рдХреЗ рдмрд╛рд╣рд░ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВред рдПрдХ рдЕрд░реНрде рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╣реА рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рд╡реЗ рдмрд╛рдЗрдЯрдХреЛрдб, рдорд╢реАрди рдХреЛрдб, рдпрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд░реВрдк рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ - рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рд╣рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ "рд╕рдЪреНрдЪрд╛рдИ" рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдорд┐рд▓рддрд╛ рд╣реИред

рдРрд╕реЗ рдХрдИ рдХреЛрдб рдЬреЗрдирд░реЗрдЯрд░ рд╣реИрдВ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, XJC XSD рдпрд╛ WSDL рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рд╡рд╛ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ. рд╕рд┐рджреНрдзрд╛рдВрдд рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╣реИ:

  • рдХреБрдЫ рд╕рдЪреНрдЪрд╛рдИ рд╣реИ (рдЖрдВрддрд░рд┐рдХ рдпрд╛ рдмрд╛рд╣рд░реА) - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢, рдПрдХ рдбреЗрдЯрд╛ рдореЙрдбрд▓, рдЖрджрд┐ред
  • рд╣рдореЗрдВ рдЕрдкрдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдЗрд╕ рд╕рддреНрдп рдХреЗ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрддрд┐рд░реЗрдХ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЙрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рддрд╛ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ

рдиреЛрдЯ: jOOQ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░, рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХрд╛ рдЯрд╛рдЗрдк рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ F# рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ, рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдРрд╕рд╛ рдХреЛрдб рд╕реНрд░реЛрдд рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдорд╛рди, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрддрдиреЗ рд╕реБрдВрджрд░ рдирд╣реАрдВ, рдЙрдкрдХрд░рдг рд╣реИрдВ - рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Lombok.

рдПрдХ рддрд░рд╣ рд╕реЗ, рдпрд╣рд╛рдБ рднреА рд╡рд╣реА рдЪреАрдЬреЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдереАрдВ, рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде:

  • рдЖрдкрдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ (рд╢рд╛рдпрдж рдпрд╣ рд╕реНрдерд┐рддрд┐ рдХрд┐рд╕реА рдХреЛ рдХрдо рдкреНрд░рддрд┐рдХреВрд▓ рд▓рдЧрддреА рд╣реИ?)
  • рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, "рд╕рд╣реА" рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЛрдореНрдмреЛрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЖрд╕рд╛рди рд╣реИ, рдЬреЛ "рд╕рддреНрдп" рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрд▓рдмреНрдз рд▓рд╛рдЗрд╡ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдХреЛрдб рдЬрдирд░реЗрд╢рди рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдХреЛрдб рдЬрдирд░реЗрд╢рди рдХреЛ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдП - рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕ рдкреЗрдЪреАрджрд╛ рд╕рд╡рд╛рд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдЬрдирд░реЗрд╢рди рдХреА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдФрдЪрд┐рддреНрдп, рдЬреЛ рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдорд┐рд▓рд╛, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рддрдм рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рдБ, рдпрд╣ рд╕рдЪрдореБрдЪ рдХрдард┐рди рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рд▓рд╛рдЧрдд рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЙрддреНрдкрд╛рдж (рдЪрд╛рд╣реЗ рд╡рд╣ jOOQ, рдпрд╛ JAXB, рдпрд╛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдПрдкреАрдЖрдИ рд╕реАрдЦрдиреЗ рдореЗрдВ рд╣реА рдЦрд░реНрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕рд╕реЗ рдореВрд▓реНрдп рдирд┐рдХрд╛рд▓ рд╕рдХреЗрдВред .

рдпрджрд┐ рдЬрдирд░реЗрдЯрд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдЬреБрдбрд╝реА рд▓рд╛рдЧрдд рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ, рддреЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдкреАрдЖрдИ рдиреЗ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд░ рдЦрд░рд╛рдм рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ (рдФрд░ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдХреВрд▓рди рднреА рдЬрдЯрд┐рд▓ рд╣реИ)ред рдРрд╕реЗ рдХрд┐рд╕реА рднреА рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдЬрдирд░реЗрд╢рди рдХреЗ рдЦрд╝рд┐рд▓рд╛рдлрд╝ рд╕рд┐рд░реНрдлрд╝ рдПрдХ рддрд░реНрдХ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЖрдВрддрд░рд┐рдХ рдпрд╛ рдмрд╛рд╣реНрдп рд╕рддреНрдп рдХрд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд▓рд┐рдЦрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореИрдиреБрдЕрд▓ рд╣реИред

рдХрдИ рд▓реЛрдЧ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред рдЙрдирдХреЗ рд╕реБрдкрд░ рдЙрддреНрдкрд╛рдж рдХреА рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИред рдХрд┐рд╕реА рджрд┐рди рд╣рдо рдЕрд╕реЗрдВрдмрд▓реА рдХрдиреНрд╡реЗрдпрд░ рдХреЛ рд╕рд╛рдл рдХрд░ рджреЗрдВрдЧреЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛрдЧрд╛ред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЙрддреНрддрд░ рджреВрдВрдЧрд╛:

рд╕рддреНрдп рдкрд╣рд▓реЗ, рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ
рдореВрд▓, рдПрд▓рди рдУ'рд░реВрд░реНрдХреЗ, рдСрдбрд┐рдпрдВрд╕ рд╕реНрдЯреИрдХ

рд▓реЗрдХрд┐рди рд╣рд╛рдЗрдмрд░рдиреЗрдЯ/рдЬреЗрдкреАрдП рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВред рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдФрд░ рдЙрд╕рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╢реАрд░реНрд╡рд╛рдж рдФрд░ рдЕрднрд┐рд╢рд╛рдк рджреЛрдиреЛрдВ рд╣реИред рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдореЗрдВ рдЖрдк рдмрд╕ рдХреБрдЫ рдЗрдХрд╛рдЗрдпрд╛рдБ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

	@Entity
class Book {
  @Id
  int id;
  String title;
}

рдФрд░ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ. рдЕрдм рдпрд╣ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдХрд┐ рд╡рд╣ рдЖрдкрдХреЗ рдПрд╕рдХреНрдпреВрдПрд▓ "рдмреЛрд▓реА" рдХреЗ рдбреАрдбреАрдПрд▓ рдореЗрдВ рдЗрд╕ рдЗрдХрд╛рдИ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХрд╛ рдЬрдЯрд┐рд▓ "рд╡рд┐рд╡рд░рдг" рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:

	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);

... рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдирд╛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд╕рд░ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЕрдиреБрдорддрд┐ рджреЗрдВред рдореИрдВ рд▓реЗрдЯрд╛ рдерд╛ред

  • рдХреНрдпрд╛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдирд╛рдорд┐рдд рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛?
  • рдХреНрдпрд╛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ TITLE рдореЗрдВ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдПрдЧрд╛? - рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
  • рдХреНрдпрд╛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рдЪрд╛рди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдореЗрдВ рдЗрд╕ рдХреБрдВрдЬреА рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдЧрд╛?

рд╢рд╛рдпрдж рдирд╣реАрдВред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реА рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреБрд╕реНрддрдХ рдЗрдХрд╛рдИ рдЕрдВрддрддрдГ рд░реВрдк рд▓реЗрдЧреА:

	@Entity
@Table(name = "book", indexes = {
  @Index(name = "i_book_title", columnList = "title")
})
class Book {
  @Id
  @GeneratedValue(strategy = IDENTITY)
  int id;
  String title;
}

рдардВрдбрд╛ред рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░реЗрдВ. рдлрд┐рд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╛рдж рдореЗрдВ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рджреЗрд░-рд╕рдмреЗрд░ рдЖрдкрдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЬрд╛рдирд╛ рд╣реА рд╣реЛрдЧрд╛ред рддрднреА рдпрд╣ рдореЙрдбрд▓ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛. рдХреНрдпреЛрдВрдХрд┐:

рдЙрддреНрдкрд╛рджрди рдореЗрдВ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рддреНрдпрд╛рдЧрдирд╛ рдФрд░ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрдм рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд┐рд░рд╛рд╕рдд рдмрди рдЬрд╛рдПрдЧрд╛.

рдЕрдм рд╕реЗ рд▓реЗрдХрд░ рд╣рдореЗрд╢рд╛ рддрдХ рддреБрдореНрд╣реЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реА рдкрдбрд╝реЗрдЧрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреНрд▓рд╛рдИрд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдбреАрдбреАрдПрд▓ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ. рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдЖрдк рдпрд╛ рддреЛ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрднрд╛рд░ рджреЛрдЧреБрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдпрд╛ рдЖрдк рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдХрд┐рддрдиреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ?) рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рдЖрдк рд╣рд╛рд░ рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЙрддреНрдкрд╛рджрди рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ рддреЛ рдЖрдкрдХреЛ рд╣реЙрдЯ рдкреИрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рдЖрдкрдиреЗ рддреИрдпрд╛рд░реА рдирд╣реАрдВ рдХреА рдФрд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд░рд╡рд╛рд╕рди рдХреА рдПрдХ рд╕реБрдЪрд╛рд░реБ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХреА, рдЖрдк рдмреЗрддрд╣рд╛рд╢рд╛ рд╕рдм рдХреБрдЫ рдкреИрдЪ рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд░рд╣реЗрдЧрд╛ред рдФрд░ рдЖрдк рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рдФрд░ рдХреА рдЧрд▓рддреА рд╣реЛрддреА рд╣реИ, рд╕рд┐рд░реНрдл рдЖрдкрдХреА рдирд╣реАрдВ...

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЪреАрдЬрд╝реЗрдВ рд╢реБрд░реВ рд╕реЗ рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рдереАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдЗрдХрд┐рд▓ рдкрд░ рдЧреЛрд▓ рдкрд╣рд┐рдпреЗ рд▓рдЧрд╛рдПрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛рдмреЗрд╕

рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ "рд╕рдЪреНрдЪрд╛рдИ" рдФрд░ рдЙрд╕ рдкрд░ "рд╕рдВрдкреНрд░рднреБрддрд╛" рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреАрддрд░ рдирд┐рд╣рд┐рдд рд╣реИред рд╕реНрдХреАрдорд╛ рдХреЛ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрд╣реАрдВ рдирд╣реАрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕реНрдХреАрдорд╛ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреАрдорд╛ рдФрд░ рдЗрд╕рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛, рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдирд╛ рд╕рд╣реА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рдЬрд╣рд╛рдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рд╕рдВрдЧреНрд░рд╣рд┐рдд.
рдпрд╣ рдкреБрд░рд╛рдирд╛, рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдШрд┐рд╕рд╛-рдкрд┐рдЯрд╛ рдЬреНрдЮрд╛рди рднреА рд╣реИред рдкреНрд░рд╛рдердорд┐рдХ рдФрд░ рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЕрдЪреНрдЫреА рд╣реИрдВ. рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЕрдЪреНрдЫреА рд╣реИрдВ. рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ. рдЕрдиреБрдореЛрджрди - рдЕрдЪреНрдЫрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ рд╣реИ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Oracle рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рд╕рдВрднрд╡рддрдГ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ:

  • рдЖрдкрдХреА рдЯреЗрдмрд▓ рдХрд┐рд╕ рдЯреЗрдмрд▓рд╕реНрдкреЗрд╕ рдореЗрдВ рд╣реИ?
  • рдЗрд╕рдХрд╛ PCTFREE рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ?
  • рдЖрдкрдХреЗ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдХреИрд╢ рдЖрдХрд╛рд░ рдХреНрдпрд╛ рд╣реИ (рдЖрдИрдбреА рдХреЗ рдкреАрдЫреЗ)

рдпрд╣ рдЫреЛрдЯреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЬрд╛рдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ - рдЖрдк рд╡рд┐рдХреНрд░реЗрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рднрдВрдбрд╛рд░рдг рдЕрдиреБрдХреВрд▓рди рд╕реЗ рд▓рд╛рдн рдЙрдард╛рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИрдВред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЧрдП рдХреЛрдИ рднреА ORM (jOOQ рд╕рд╣рд┐рдд) DDL рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред ORM рдХреБрдЫ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ 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 рд╕реЗ, рдпрд╛ jOOQ рдореЗрдЯрд╛-рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред

рдРрд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ, рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдХрд╛ рдХреЛрдИ рднреА рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХрд┐рд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реЛрдВред

  • рдпрджрд┐ рдЖрдк рдЬреЗрдбреАрдмреАрд╕реА рдпрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ
  • рдпрджрд┐ рдЖрдк рдЬреЗрдкреАрдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрдХрд╛рдЗрдпрд╛рдВ рд╕реНрд╡рдпрдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • рдпрджрд┐ рдЖрдк jOOQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк jOOQ рдореЗрдЯрд╛-рдореЙрдбрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЖрдкрдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП jOOQ рдпрд╛ JPA) рджреНрд╡рд╛рд░рд╛ рдХрд┐рддрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореЗрдЯрд╛ рдореЙрдбрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдореГрджреНрдз рдФрд░ рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬреБрдбрд╝рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд▓реЗрдВ, jOOQ 3.11 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдЖрдкрдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдореМрдЬреВрдж рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдХреЛрдИ рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджреЗрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП:

ALTER TABLE book RENAME COLUMN title TO book_title;

рдХреНрдпрд╛ рдЖрдк рд╕рдЪрдореБрдЪ рдпрд╣ рдХрд╛рдо рджреЛ рдмрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВред рдмрд╕ рдбреАрдбреАрдПрд▓ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░реЗрдВ, рдЗрд╕реЗ рдЕрдкрдиреА рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдПрдВ, рдФрд░ рдЕрджреНрдпрддрди рдЗрдХрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

@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 рд╡рд░реНрдЧред рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреАрдбреАрдПрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рд╕реЗ рдХреМрди рд╕рд╛ рдХреЛрдб рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдЧрд╛ (рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

рдЗрдХрд▓реМрддрд╛ рд╕рдЪ

рдЪрд╛рд╣реЗ рдЖрдк рдХрд┐рд╕реА рднреА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд╣рдореЗрд╢рд╛ рдПрдХ рдореЙрдбрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдЙрдкрдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рд╕рддреНрдп рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕реНрд░реЛрдд рд╣реЛрддрд╛ рд╣реИ - рдпрд╛, рдХрдо рд╕реЗ рдХрдо, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдРрд╕реЗ рдЙрджреНрдпрдо рднреНрд░рдо рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ "рд╕рдЪреНрдЪрд╛рдИ" рд╣рд░ рдЬрдЧрд╣ рд╣реИ рдФрд░ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рд╣реИ . рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ. рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдмрд╕ XSD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред XML рдлреЙрд░реНрдо рдореЗрдВ jOOQ рд╕реЗ INFORMATION_SCHEMA рдореЗрдЯрд╛-рдореЙрдбрд▓ рджреЗрдЦреЗрдВ:
https://www.jooq.org/xsd/jooq-meta-3.10.0.xsd

  • рдПрдХреНрд╕рдПрд╕рдбреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • XSD XML рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЯреЛрдХрдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
  • XSD рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЙрдиреНрдирдд рдмреИрдХрд╡рд░реНрдб рд╕рдВрдЧрддрддрд╛ рд╣реИ
  • XJC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XSD рдХреЛ рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ. XML рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рдВрджреЗрд╢ рд╡реИрдз рд╣реИрдВред JAXB, XJC рдФрд░ XSD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдпрд╣ рд╕реЛрдЪрдирд╛ рд╕рд░рд╛рд╕рд░ рдкрд╛рдЧрд▓рдкрди рд╣реЛрдЧрд╛ рдХрд┐, "рдЬрд╛рд╡рд╛ рдлрд░реНрд╕реНрдЯ" рдбрд┐рдЬрд╝рд╛рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЬрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рд╕реБрд╕рдВрдЧрдд рд░реВрдк рд╕реЗ XML рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдкрднреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдкрд░ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ XML рдмрд╣реБрдд рдЦрд░рд╛рдм рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛, рдЧреИрд░-рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХреГрдд рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛ред рдпрджрд┐ рдРрд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реЗрд╡рд╛ рд╕реНрддрд░ рд╕рдордЭреМрддрд╛ (рдПрд╕рдПрд▓рдП) рд╣реЛрддрд╛, рддреЛ рд╣рдо рдЗрд╕реЗ рддреБрд░рдВрдд рдЦрд╝рддреНрдо рдХрд░ рджреЗрддреЗред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд╣реВрдБ рддреЛ, JSON API рдХреЗ рд╕рд╛рде рд╣рд░ рд╕рдордп рдпрд╣реА рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдФрд░ рдХрд╣рд╛рдиреА рд╣реИ, рдореИрдВ рдЕрдЧрд▓реА рдмрд╛рд░ рдЭрдЧрдбрд╝рд╛ рдХрд░реВрдБрдЧрд╛...

рдбреЗрдЯрд╛рдмреЗрд╕: рд╡реЗ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╣реИрдВ

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рднреА рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВред рдЖрдзрд╛рд░ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ рдФрд░ рдЙрд╕реЗ рдпреЛрдЬрдирд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдХреАрдорд╛ рдореЗрдВ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рд╕рдВрд╢реЛрдзрди рдХреЛ рд╕реАрдзреЗ рдбреАрдбреАрдПрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╕рддреНрдп рдХрд╛ рдПрдХрд▓ рд╕реНрд░реЛрдд рдЕрджреНрдпрддрди рд╣реЛ рд╕рдХреЗред

рдЬрдм рдХреЛрдИ рд╕реНрд░реЛрдд рдЕрдкрдбреЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдореЙрдбрд▓ рдХреА рдЕрдкрдиреА рдкреНрд░рддрд┐рдпрд╛рдВ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рдиреА рд╣реЛрдВрдЧреАред рдХреБрдЫ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ jOOQ рдФрд░ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдпрд╛ JDBC (рдпрд╛ рджреЛрдиреЛрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд░реНрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рдо рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрддреЗ рд╣реИрдВ), рдЬрдмрдХрд┐ рдЕрдиреНрдп рдХреЛ C# рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ред рдореБрдЦреНрдп рдореЙрдбрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реИ. рдУрдЖрд░рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдореЙрдбрд▓ рдЖрдорддреМрд░ рдкрд░ рдЦрд░рд╛рдм рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ, рдЦрд░рд╛рдм рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡рд╛рд▓реЗ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рди рд╣реЛрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдЧрд▓рддрд┐рдпрд╛рдБ рдордд рдХрд░реЛ. рд╢реБрд░реВ рд╕реЗ рд╣реА рдЧрд╝рд▓рддрд┐рдпрд╛рдБ рди рдХрд░реЗрдВ. рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░реЗрдВ. рдПрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрдирд╛рдПрдВ рдЬрд┐рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рдФрд░ рдЙрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдбрдВрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЬреЗрдирд░реЗрдЯрд░ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред рдФрд░ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВред рд╡реЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВред рдЙрдирдХреЗ рд╕рд╛рде рдЖрдк рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдмрдиреЗрдВрдЧреЗред рдЖрдкрдХреЛ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ - рдФрд░ рдлрд┐рд░ рд╡рд░реНрд╖реЛрдВ рдХреА рдмрдврд╝реА рд╣реБрдИ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдЖрдкрдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реА рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдмрдирд╛рдПрдЧреАред

рдореБрдЭреЗ рдЕрднреА рдзрдиреНрдпрд╡рд╛рдж рдордд рджреЗрдирд╛, рдмрд╛рдж рдореЗрдВред

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП: рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдмрд╛рдд рдХреА рд╡рдХрд╛рд▓рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо (рдпрд╛рдиреА, рдбреЛрдореЗрди, рдмрд┐рдЬрдиреЗрд╕ рд▓реЙрдЬрд┐рдХ рдЗрддреНрдпрд╛рджрд┐) рдХреЛ рдореЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рд╡рд╣ рд╕реНрд╡рдпрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдХреЛ "рдкреНрд░рдердо рд╢реНрд░реЗрдгреА" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреБрди: рдкреЗрд╢ рди рдХрд░реЗред рдпрд╣ рддрд░реНрдХ рдЖрдорддреМрд░ рдкрд░ рдЖрдкрдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рд▓реЗрдпрд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред

рджреЛ-рд╕реНрддрд░реАрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ, рдЬреЛ рдЕрднреА рднреА рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИрдВ, рдРрд╕рд╛ рд╕рд┐рд╕реНрдЯрдо рдореЙрдбрд▓ рдПрдХрдорд╛рддреНрд░ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдкрд░рдд рдореБрдЭреЗ рдПрдХ "рд╕рдмрд╕рд┐рд╕реНрдЯрдо" рд▓рдЧрддреА рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбрд▓ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддреА рд╣реИред

рдЕрдкрд╡рд╛рдж

рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдХреЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВ, рдФрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕-рдкреНрд░рдердо рдФрд░ рд╕реНрд░реЛрдд-рдХреЛрдб рдкреАрдврд╝реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрднреА-рдХрднреА рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдРрд╕реЗ рдХреБрдЫ рдЕрдкрд╡рд╛рдж рджрд┐рдП рдЧрдП рд╣реИрдВ (рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рднреА рд╣реИрдВ):

  • рдЬрдм рд╕реНрдХреАрдорд╛ рдЕрдЬреНрдЮрд╛рдд рд╣реЛ рдФрд░ рдЙрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рдкреНрд░рджрд╛рддрд╛ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдЖрд░реЗрдЦ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрд╣. рдпрд╣рд╛рдВ рдХреЛрдИ рдХреЛрдб рдЬреЗрдирд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ. рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИред
  • рдЬрдм рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрдХрд╛рд▓ рдПрдХ рд╕рд░реНрдХрд┐рдЯ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдкреИрдЯрд░реНрди рдХрд╛ рдереЛрдбрд╝рд╛ рдХрд╛рд▓реНрдкрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЗрдХрд╛рдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди, рдпрд╛рдиреА, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЕрдХреНрд╕рд░ рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХрд┐ рдЖрд░рдбреАрдмреАрдПрдордПрд╕ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВред

рдЕрдкрд╡рд╛рдж рд╕реНрд╡рднрд╛рд╡рддрдГ рдЕрд╕рд╛рдзрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВред рдЖрд░рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЬреБрдбрд╝реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реНрдХреАрдорд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЖрд░рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рднреАрддрд░ рд░рд╣рддрд╛ рд╣реИ рдФрд░ "рд╕рдЪреНрдЪрд╛рдИ" рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕реНрд░реЛрдд рд╣реИ, рдФрд░ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рд╣реЛрддреА рд╣реИрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдПрдХ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ