ObjectDB - рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА

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


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

рднреМрддрд┐рдХ рд╕реАрдорд╛рдПрдБ:

рдЕрдм рд╕реБрдЦрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:
рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
рдФрд░ рдХрдИ рдЕрдиреНрдп рдХреБрдиреНрд╖реНрдЯреБрдХреА, рдЬреИрд╕реЗ: рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдмрдВрдзрди, рдбреЗрдЯрд╛рдмреЗрд╕ рд░рд┐рдХрд╡рд░реА, рдХрдИ рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░, рд╕рд░рд▓ рдФрд░ рд╕рдордЧреНрд░ рд╕реВрдЪрдХрд╛рдВрдХ, JPQL рдФрд░ JDOQL рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЖрджрд┐ред

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

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ DBMS рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 2 рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдФрд░ рдЙрд╕ рдкрд░ рдкрд░рд┐рдЪрд╛рд▓рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд░реНрдЧред

рдХрдХреНрд╖рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред Java
рдпрд╣ рд╡рд░реНрдЧ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 package db; import java.io.Serializable; import javax.jdo.annotations.Unique; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; public User() { } public User(String name, String pass) { this.name = name; this.pass = pass; } public Long getId() { return id; } @Unique private String name; private String pass; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } } 
package db; import java.io.Serializable; import javax.jdo.annotations.Unique; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; public User() { } public User(String name, String pass) { this.name = name; this.pass = pass; } public Long getId() { return id; } @Unique private String name; private String pass; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } }


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

@Entity
@Entity рдПрдиреЛрдЯреЗрд╢рди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

@Id рдПрдиреЛрдЯреЗрд╢рди рдЖрдИрдбреА рддрддреНрд╡ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ @GeneratedValue (рд░рдгрдиреАрддрд┐ = GenerationType.AUTO) рдЗрд╕рдХреЗ рд▓рд┐рдП рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред GenerationType.AUTO рдХрд╛ рдпрд╣ рднреА рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдореБрдЦреНрдп рдореВрд▓реНрдп рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
@Unique private String name; рдПрдиреЛрдЯреЗрд╢рди @ рдпреВрдирд┐рдХ рдПрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рдЪрд┐рдиреНрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдореВрд▓реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рдЬрдм рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЧрдИ рд╡рд╕реНрддреБ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ DBMS рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред

рдХрдХреНрд╖рд╛ UserDBAdcape.java
рдпрд╣ рд╡рд░реНрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред
 package db; import javax.persistence.*; public class UserDBAdapter { EntityManagerFactory emf; EntityManager em; public UserDBAdapter() { emf = Persistence.createEntityManagerFactory("$objectdb/db/usr.odb"); em = emf.createEntityManager(); } @Override protected void finalize(){ em.close(); emf.close(); } public boolean persistUser(User u) { try { em.getTransaction().begin(); em.persist(u); em.getTransaction().commit(); em.clear(); return true; } catch(PersistenceException e){ System.out.println(e.getMessage()); em.clear(); em.close(); emf.close(); return false; } } public User getUserById(long id) { User u1 = em.find(User.class, id); return u1; } public User getUserByName(String name) { TypedQuery q = em.createQuery("SELECT u FROM User u WHERE u.name = :name", User.class); User u1 = (User) q.setParameter("name", name).getSingleResult(); return u1; } public boolean autentificate(String name, String pass) throws PersistenceException{ TypedQuery q = em.createQuery("SELECT u FROM User u WHERE u.name = :name AND u.pass = :pass", User.class); try { User u1 = (User)q.setParameter("name", name).setParameter("pass", pass).getSingleResult(); return true; } catch(PersistenceException e) { em.clear(); em.close(); emf.close(); throw new PersistenceException("username not found or password is invalid"); } } } 
package db; import javax.persistence.*; public class UserDBAdapter { EntityManagerFactory emf; EntityManager em; public UserDBAdapter() { emf = Persistence.createEntityManagerFactory("$objectdb/db/usr.odb"); em = emf.createEntityManager(); } @Override protected void finalize(){ em.close(); emf.close(); } public boolean persistUser(User u) { try { em.getTransaction().begin(); em.persist(u); em.getTransaction().commit(); em.clear(); return true; } catch(PersistenceException e){ System.out.println(e.getMessage()); em.clear(); em.close(); emf.close(); return false; } } public User getUserById(long id) { User u1 = em.find(User.class, id); return u1; } public User getUserByName(String name) { TypedQuery q = em.createQuery("SELECT u FROM User u WHERE u.name = :name", User.class); User u1 = (User) q.setParameter("name", name).getSingleResult(); return u1; } public boolean autentificate(String name, String pass) throws PersistenceException{ TypedQuery q = em.createQuery("SELECT u FROM User u WHERE u.name = :name AND u.pass = :pass", User.class); try { User u1 = (User)q.setParameter("name", name).setParameter("pass", pass).getSingleResult(); return true; } catch(PersistenceException e) { em.clear(); em.close(); emf.close(); throw new PersistenceException("username not found or password is invalid"); } } }


рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( рдпрджрд┐ рдХреЛрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ )ред

public boolean persistUser(User u) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдЪрд╛рд▓рди, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рдПрдХ рд▓реЗрдирджреЗрди рдХреЗ рдЕрдВрджрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ em.getTransaction().begin() рд╕рд╛рде рдЦреБрд▓рддрд╛ рд╣реИ em.getTransaction().begin() рд╡рд┐рдзрд┐, рдФрд░ em.getTransaction().commit() рд╕рд╛рде рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ em.getTransaction().commit() рд╡рд┐рдзрд┐ ( рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ )ред
рдРрд╕реЗ рддрд░реАрдХреЗ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░реАрдб рдСрдкрд░реЗрд╢рдВрд╕, рдХреЛ рд╕рдХреНрд░рд┐рдп рд▓реЗрдирджреЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, SQL- рдЬреИрд╕реЗ JPQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
public User getUserByName(String name) рдФрд░ public boolean autentificate(String name, String pass) public User getUserByName(String name) public boolean autentificate(String name, String pass)
рдпрд╛ Entitymanager рд╡рд░реНрдЧ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реАрдХреЗ, рдЬреИрд╕реЗ рдХрд┐ em.find(User.class, id) рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА (рдЖрдИрдбреА) рджреНрд╡рд╛рд░рд╛ рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

Source: https://habr.com/ru/post/In145679/


All Articles