“`html
Hibernate Sessions рдФрд░ SessionFactory рдХреЛ рд╕рдордЭрдирд╛: рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЧрд╛рдЗрдб
рд╕рд╛рдордЧреНрд░реА рддрд╛рд▓рд┐рдХрд╛
- рдкрд░рд┐рдЪрдп
- Hibernate SessionFactory
- Hibernate Session
- SessionFactory рдмрдирд╛рдо Session: рдПрдХ рддреБрд▓рдирд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
- рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг: SessionFactory рдФрд░ Session рдХрд╛ рдЙрдкрдпреЛрдЧ
- рдирд┐рд╖реНрдХрд░реНрд╖
рдкрд░рд┐рдЪрдп
тАЬHibernate Sessions рдФрд░ SessionFactory рдХреЛ рд╕рдордЭрдирд╛: рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЧрд╛рдЗрдбтАЭ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдпрд╣ рдИрдмреБрдХ Hibernate рдХреЗ рд╕реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдХреЗ рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ SessionFactory рдФрд░ Session рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪрд╛рд╣реЗ рдЖрдк рдПрдХ рдирдП рдбреЗрд╡рд▓рдкрд░ рд╣реЛрдВ рдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рд╣реЛ, рдпрд╣ рдЧрд╛рдЗрдб рдЗрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд░рдЦрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк Hibernate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░ рд╕рдХреЗрдВред
Hibernate рдореЗрдВ Session рдФрд░ SessionFactory рдХрд╛ рдорд╣рддреНрд╡
Hibernate рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА Object-Relational Mapping (ORM) рдЯреВрд▓ рд╣реИ рдЬреЛ object-oriented рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ relational рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдкрд╛рдЯрддрд╛ рд╣реИред рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ SessionFactory рдФрд░ Session рд╣реИрдВ:
- SessionFactory: рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣рдм рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ Session рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
- Session: рдПрдХ single-threaded рдХрд╛рд░реНрдп рдЗрдХрд╛рдИ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде CRUD (Create, Read, Update, Delete) рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЛ рд╕реБрдЧрдо рдмрдирд╛рддрд╛ рд╣реИред
рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдХреБрд╢рд▓, рд╕реНрдХреЗрд▓реЗрдмрд▓ рдФрд░ рдореЗрдВрдЯреЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди
SessionFactory
рдлрд╛рдпрджреЗ:
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рдиреНрд╕ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдФрд░ thread-safe рд╣реИред
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдХреИрд╢ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдиреБрдХрд╕рд╛рди:
- рд╢реБрд░реБрдЖрдд рдХреЗ рджреМрд░рд╛рди рднрд╛рд░реА рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рд╣реЛрддреА рд╣реИред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдЗрдлрд╕рд╛рдЗрдХрд▓ рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╡рд┐рдирд╛рд╢ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
Session
рдлрд╛рдпрджреЗ:
- рд╣рд▓реНрдХрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпрдХреНрд╖ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд╕реБрдЧрдо рдмрдирд╛рддрд╛ рд╣реИред
- рд▓реЗрдирджреЗрди рдкреНрд░рдмрдВрдзрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдиреБрдХрд╕рд╛рди:
- thread-safe рдирд╣реАрдВ рд╣реИ; multi-threaded рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкреНрд░рдмрдВрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ, рдмрд╛рд░-рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдХрдм рдФрд░ рдХрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
- SessionFactory: рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╡реНрдпрд╛рдкреА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢, рдЖрдорддреМрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдПрдХ рдмрд╛рд░ рдирд┐рд░реНрдорд┐рдд рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдЗрдлрд╕рд╛рдЗрдХрд▓ рднрд░ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- Session: рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдп рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд, рдЬреИрд╕реЗ рдПрдХрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЗрдирджреЗрди рдпрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рдиред
рддреБрд▓рдирд╛рддреНрдордХ рдЕрд╡рд▓реЛрдХрди
рд╡рд┐рд╢реЗрд╖рддрд╛ | SessionFactory | Session |
---|---|---|
рдкреНрд░рдХреГрддрд┐ | рднрд╛рд░реА, thread-safe | рд╣рд▓реНрдХрд╛, thread-safe рдирд╣реАрдВ |
рд▓рд╛рдЗрдлрд╕рд╛рдЗрдХрд▓ | рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдПрдХ рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ | рдХрд╛рд░реНрдп рдЗрдХрд╛рдИ (рд▓реЗрдирджреЗрди) рдкреНрд░рддрд┐ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ |
рдЙрджреНрджреЗрд╢реНрдп | рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рдиреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ | рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде CRUD рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЛ рд╕реБрдЧрдо рдмрдирд╛рддрд╛ рд╣реИ |
рдЙрдкрдпреЛрдЧ | рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╡реНрдпрд╛рдкреА рдЙрдкрдпреЛрдЧ | рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░, рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдЙрдкрдпреЛрдЧ |
Hibernate SessionFactory
SessionFactory рдХреНрдпрд╛ рд╣реИ?
SessionFactory Hibernate рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХ рд╣реИ рдЬреЛ Session рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдлреИрдХреНрдЯреНрд░реА рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрд╣ Hibernate рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ Database Management System (DBMS) рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдПрдХ рднрд╛рд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, SessionFactory рдЖрдорддреМрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдПрдХ рдмрд╛рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдПрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ Session рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
SessionFactory рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
SessionFactory рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдЧреБрдгреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ Hibernate рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдирд╛ рд╣реИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдПрдХ рдирдореВрдирд╛ hibernate.cfg.xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИ:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди URL -->
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- рдХрдВрд╕реЛрд▓ рдкрд░ SQL рджрд┐рдЦрд╛рдПрдВ -->
<property name="show_sql">true</property>
<!-- рд╕реЗрд╢рди рд╕рдВрджрд░реНрдн рдореЙрдбрд▓ рд╕реЗрдЯ рдХрд░рдирд╛ -->
<property name="current_session_context_class">thread</property>
</session-factory>
</hibernate-configuration>
рдореБрдЦреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЧреБрдг:
- connection.driver_class: рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП JDBC рдбреНрд░рд╛рдЗрд╡рд░ рдХреНрд▓рд╛рд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
- dialect: Hibernate рдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL рдбрд╛рдпрд▓реИрдХреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ DBMS рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддрд╛ рд╣реИред
- connection.url: рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JDBC URLред
- connection.username & connection.password: рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ред
- show_sql: рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдореЗрдВ SQL рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
- current_session_context_class: рд╕реЗрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рд╕реНрдХреЛрдк рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ thread-bound sessions рдХреЗ рд▓рд┐рдП “thread” рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред
SessionFactory рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди
рдлрд╛рдпрджреЗ:
- рд╕рдВрд╕рд╛рдзрди рджрдХреНрд╖рддрд╛: рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдФрд░ thread-safe, рдмрд╛рд░-рдмрд╛рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХрддрд╛рдУрдВ рд╕реЗ рдмрдЪрдХрд░ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
- рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред
- рдХреЗрдВрджреНрд░реАрдХреГрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди: рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рдиреНрд╕ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рдиреБрдХрд╕рд╛рди:
- рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдУрд╡рд░рд╣реЗрдб: рднрд╛рд░реА рд╡рд╕реНрддреБ рдирд┐рд░реНрдорд╛рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рд╕реАрдорд┐рдд рд▓рдЪреАрд▓рд╛рдкрди: рдПрдХ singleton рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдЗрд╕реЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Hibernate Session
Session рдХреНрдпрд╛ рд╣реИ?
Hibernate рдореЗрдВ рдПрдХ Session рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ single-threaded рдХрд╛рд░реНрдп рдЗрдХрд╛рдИ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╣рд▓реНрдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЬрд┐рд╕реЗ CRUD рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЛ рд╕реБрдЧрдо рдмрдирд╛рдиреЗ рдФрд░ entities рдХреЗ persistence lifecycle рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред SessionFactory рдХреЗ рд╡рд┐рдкрд░реАрдд, Session рдСрдмреНрдЬреЗрдХреНрдЯ рдереНрд░реЗрдб-рд╕реЗрдл рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрди рд▓реАрдХ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдиреНрд╣реЗрдВ рдЬрд▓реНрджреА рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
Sessions рдХрд╛ рдкреНрд░рдмрдВрдзрди
Session рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЙрдкрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдирд╛, рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдФрд░ рдмрдВрдж рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рддрд╛рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЕрдЦрдВрдбрддрд╛ рдмрдиреА рд░рд╣реЗред рдпрд╣рд╛рдБ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╣реИ:
- Session рдЦреЛрд▓рдирд╛:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession();
- рд▓реЗрдирджреЗрди рд╢реБрд░реВ рдХрд░рдирд╛:
Transaction transaction = session.beginTransaction();
- CRUD рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдирд╛:
// рдЙрджрд╛рд╣рд░рдг: рдПрдХ рдирдпрд╛ entity рдмрдирд╛рдирд╛ Student student = new Student(); student.setName("John Doe"); session.save(student);
- рд▓реЗрдирджреЗрди рдХрдорд┐рдЯ рдХрд░рдирд╛:
transaction.commit();
- Session рдмрдВрдж рдХрд░рдирд╛:
session.close();
Sessions рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди
рдлрд╛рдпрджреЗ:
- рд╕рд░рд▓рддрд╛: рдЦреЛрд▓рдирд╛ рдФрд░ рдмрдВрдж рдХрд░рдирд╛ рдЖрд╕рд╛рди, рдЬрд┐рд╕рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд╛ рдкреНрд░рдмрдВрдзрди рд╕рд░рд▓ рд╣реЛрддрд╛ рд╣реИред
- рд▓рдЪреАрд▓рд╛рдкрди: entities рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛, рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдбрд┐рд▓реАрдЯ рдХрд░рдирд╛, рдФрд░ рдлрд╝реЗрдЪ рдХрд░рдирд╛ рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
- Transactional Support: рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рд▓реЗрдирджреЗрди рдкреНрд░рдмрдВрдзрди рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
рдиреБрдХрд╕рд╛рди:
- Non-Thread-Safe: concurrency рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдХрд▓ рдереНрд░реЗрдб рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
- Short-Lived: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкреНрд░рдмрдВрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ sessions рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдмрдВрдж рд╣реЛ, рд╕рдВрднрд╛рд╡рд┐рдд memory leaks рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред
SessionFactory рдмрдирд╛рдо Session: рдПрдХ рддреБрд▓рдирд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
SessionFactory рдФрд░ Session рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдирд╛ рдХреБрд╢рд▓ Hibernate рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдиреАрдЪреЗ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рддреБрд▓рдирд╛ рд╣реИ:
рд╡рд┐рд╢реЗрд╖рддрд╛ | SessionFactory | Session |
---|---|---|
рдкрд░рд┐рднрд╛рд╖рд╛ | Session рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдлреИрдХреНрдЯреНрд░реА | рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХрд▓ рдХрд╛рд░реНрдп рдЗрдХрд╛рдИ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ |
рд╡рдЬрди | рднрд╛рд░реА, рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди | рд╣рд▓реНрдХрд╛ |
Thread Safety | thread-safe | thread-safe рдирд╣реАрдВ |
рд▓рд╛рдЗрдлрд╕рд╛рдЗрдХрд▓ | рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдПрдХ рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ | рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдирджреЗрди рдкрд░ рдмрдирд╛рдпрд╛ рдФрд░ рдирд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ |
рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡реГрддреНрддрд┐ | рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ | рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ |
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди | Hibernate рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд░рдЦрддрд╛ рд╣реИ | SessionFactory рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ |
рдореБрдЦреНрдп рдЬрд┐рдореНрдореЗрджрд╛рд░реА | рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рдиреНрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ | CRUD рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдирд╛ рдФрд░ рд▓реЗрдирджреЗрди рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ |
рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ | рдЙрдЪреНрдЪ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓рд╛рдЧрдд, рд╕рдордп рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓рд┐рдд | рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдкрд░ рдиреНрдпреВрдирддрдо, рд▓реЗрдХрд┐рди рдмрд╛рд░-рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдУрд╡рд░рд╣реЗрдб рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ |
рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖:
- SessionFactory рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдПрдЯ рдХрд░рдХреЗ global рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рдиреНрд╕ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- Session рдХреЛ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд▓реЗрдирджреЗрди рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рдиреНрд╕ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реБрдПред
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг: SessionFactory рдФрд░ Session рдХрд╛ рдЙрдкрдпреЛрдЧ
SessionFactory рдФрд░ Session рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ Student
entity рдХреЗ рд╕рд╛рде CRUD рдСрдкрд░реЗрд╢рдиреНрд╕ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓реЗрдВред
Hibernate рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдХрд░рдирд╛
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ hibernate.cfg.xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ Hibernate рдХреЛ рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рджреЗрддреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЖрдкрдХреЗ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
SessionFactory рдмрдирд╛рдирд╛
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// hibernate.cfg.xml рд╕реЗ SessionFactory рдмрдирд╛рдПрдВ
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рдж рд▓реЙрдЧ рдХрд░реЗрдВ
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
рд╡реНрдпрд╛рдЦреНрдпрд╛:
- HibernateUtil: рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ рдЬреЛ рдПрдХ рдмрд╛рд░ SessionFactory рдмрдирд╛рддрд╛ рд╣реИ рдФрд░
getSessionFactory()
рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд╡рд╛рдЗрдВрдЯ рдСрдлрд╝ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред - Static Block: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ SessionFactory рдХреНрд▓рд╛рд╕ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
Session рдХреЗ рд╕рд╛рде CRUD рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдирд╛
рдЙрджрд╛рд╣рд░рдг: рдПрдХ Student Entity рдмрдирд╛рдирд╛ рдФрд░ рд╕реЗрд╡ рдХрд░рдирд╛
- Student Entity Class
import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Student { @Id private int id; private String name; // Constructors public Student() {} public Student(int id, String name) { this.id = id; this.name = name; } // Getters and Setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
рд╡реНрдпрд╛рдЦреНрдпрд╛:
@Entity
рдПрдиреЛрдЯреЗрд╢рди рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рдПрдХ Hibernate entity рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рд░реНрдХ рдХрд░рддрд╛ рд╣реИред@Id
рдкреНрд░рд╛рдЗрдорд░реА рдХреА рдлреАрд▓реНрдб рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
- Student рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛
import org.hibernate.Session; import org.hibernate.Transaction; public class AddStudent { public static void main(String[] args) { SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); Transaction transaction = null; try { transaction = session.beginTransaction(); // рдПрдХ рдирдпрд╛ Student рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ Student student = new Student(1, "John Doe"); // student рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛ session.save(student); // рд▓реЗрдирджреЗрди рдХреЛ рдХрдорд┐рдЯ рдХрд░рдирд╛ transaction.commit(); System.out.println("Student saved successfully."); } catch (Exception e) { if (transaction != null) { transaction.rollback(); } e.printStackTrace(); } finally { session.close(); } } }
рд╕реНрдЯреЗрдк-рдмрд╛рдп-рд╕реНрдЯреЗрдк рд╡реНрдпрд╛рдЦреНрдпрд╛:
- Session рдЦреЛрд▓рдирд╛: SessionFactory рд╕реЗ рдПрдХ Session рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
- рд▓реЗрдирджреЗрди рд╢реБрд░реВ рдХрд░рдирд╛: рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреА рдПрдЯреЙрдорд┐рдХрд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдирджреЗрди рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
- Entity рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛: рдПрдХ рдирдпрд╛
Student
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВid
рдФрд░name
рд╣реЛрддрд╛ рд╣реИред - Entity рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛:
session.save()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗStudent
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдпреА рдмрдирд╛рддрд╛ рд╣реИред - рд▓реЗрдирджреЗрди рдХреЛ рдХрдорд┐рдЯ рдХрд░рдирд╛: рд▓реЗрдирджреЗрди рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдмрджрд▓рд╛рд╡ рд╕реЗрд╡ рд╣реЛ рдЧрдП рд╣реИрдВред
- рдЕрдкрд╡рд╛рдж рдкреНрд░рдмрдВрдзрди: рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреЛ рд░реЛрд▓рдмреИрдХ рдХрд░рддрд╛ рд╣реИред
- Session рдмрдВрдж рдХрд░рдирд╛: Session рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд░рд┐рд▓реАрдЬ рдХрд░рддрд╛ рд╣реИред
- рдЖрдЙрдЯрдкреБрдЯ
Student saved successfully.
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рд╣рдордиреЗ Hibernate рдХреЗ SessionFactory рдФрд░ Session рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд┐рдпрд╛, рдЬреЛ Java рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ рд╣реИрдВред рд╣рдордиреЗ рдЙрдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди, рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдбреВрдмрддреЗ рд╣реБрдП, рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдордЭ рдкреНрд░рджрд╛рди рдХреАред
рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖
- SessionFactory рдПрдХ heavyweight, thread-safe рдлреИрдХреНрдЯреНрд░реА рд╣реИ рдЬреЛ Hibernate рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиреНрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ Session рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред
- Session рдПрдХ lightweight, non-thread-safe рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ CRUD рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХрд▓ рдХрд╛рд░реНрдп рдЗрдХрд╛рдИ рдХреЗ рднреАрддрд░ рд▓реЗрдирджреЗрди рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
- SessionFactory рдФрд░ Session рдХрд╛ рдЙрдЪрд┐рдд рдкреНрд░рдмрдВрдзрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди, рд╕рдВрд╕рд╛рдзрди рдЕрдиреБрдХреВрд▓рди, рдФрд░ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
- рдЗрди рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд╛рдЗрдлрд╕рд╛рдЗрдХрд▓ рдФрд░ рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рдХреЛ рд╕рдордЭрдирд╛ рдордЬрдмреВрдд рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд▓ Hibernate-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред
рдЗрди рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдХреЗ, рдЖрдк Hibernate рдХреА рдкреВрд░реА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╣реИрдВ, рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рд▓реЗрдпрд░ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реБрдП рдФрд░ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рдордЧреНрд░ рджрдХреНрд╖рддрд╛ рдмрдврд╝рд╛рддреЗ рд╣реБрдПред
рдХреАрд╡рд░реНрдбреНрд╕: Hibernate Session, SessionFactory, Hibernate Session, CRUD рдСрдкрд░реЗрд╢рдиреНрд╕, Hibernate рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, Session рдкреНрд░рдмрдВрдзрди, Java ORM, Hibernate рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓, рд╢реБрд░реБрдЖрддреА рдЧрд╛рдЗрдб, рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди, Hibernate SessionFactory рдмрдирд╛рдо Session, Hibernate Session рдЙрджрд╛рд╣рд░рдг, Hibernate рдореЗрдВ session рдкреНрд░рдмрдВрдзрди, Hibernate CRUD рдСрдкрд░реЗрд╢рдиреНрд╕, Hibernate SessionFactory рд╕реЗрдЯрдЕрдк, Hibernate Session рдЙрдкрдпреЛрдЧред
рдиреЛрдЯ: рдпрд╣ рд▓реЗрдЦ AI рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
“`