рдкреНрд░рд╕реНрддреБрдд рд╣реИ рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдореЛрдВрдЧреЛрдмреАрдбреА

рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рди!

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

рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ MongoDB рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЕрдиреБрд╡рд╛рдж
рдЖрдирдВрдж рдХреБрдорд╛рд░ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛

рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!

рдЖрдЬ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдмрдирд╛рдирд╛ рдФрд░ рдЪрд▓рд╛рдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд╡реЗрджрди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд╕рдВрдд рд╕рд┐рд░реНрдл рдПрдХ рдРрд╕рд╛ рдврд╛рдВрдЪрд╛ рд╣реИ рдЬреЛ рдХрдИ рдЕрдиреНрдп рд╡рд┐рднрд┐рдиреНрди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдореЗрдВ рдЖрд╕рд╛рдиреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╕рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд╣реА рдПрдХ рдПрдХреАрдХрд░рдг рд╣реИ MongoDB рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд╛ рдПрдХреАрдХрд░рдгред



1. рдкрд░рд┐рдЪрдп

рдЗрд╕ рдкрд╛рда рдореЗрдВ, рд╣рдо рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рд╕реНрдкреНрд░рд┐рдВрдЧ рдЬрд╛рд╡рд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо (DBMS) MongbDB рдХреЗ рд╕рдВрдпреЛрдЬрди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред MongoDB рдПрдХ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб NoSQL DBMS рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ JSON рдЬреИрд╕реЗ рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдФрд░ MongoDB рдПрдХреАрдХрд░рдг, рд╡рд╕рдВрдд рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рджреЛрдиреЛрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдбрд╛рд▓рдиреЗ, рдЕрджреНрдпрддрди рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рд╢реНрди рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ MongoDB рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

  1. рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдЖрдкрдХреЛ @Configuration рдХреНрд▓рд╛рд╕ рдФрд░ XML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  2. рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рд╕реНрдкреНрд░рд┐рдВрдЧ рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  3. рдЬрд╛рд╡рд╛ POJOs рдФрд░ рдПрдХ MongoDB рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдмреАрдЪ рдПрдХреАрдХреГрдд рдорд╛рдирдЪрд┐рддреНрд░рдгред
  4. MongoTemplate рд╡рд░реНрдЧ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп MongoDB рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
  5. MongoTemplate рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП MongoReader рдФрд░ MongoWriter рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рднреА рддрдХрдиреАрдХ рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдареАрдХ рдпрд╣реА рдЕрдм рд╣рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдЪрд▓рд┐рдП рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдореЛрдВрдЧреЛрдмрдбреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рддреЗ рд╣реИрдВред

2. рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдФрд░ рдЙрдкрдХрд░рдг

рдЖрдЗрдП рдЙрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

  1. Eclispe Oxygen.2 рд░рд┐рд▓реАрдЬ (4.7.2)
  2. рдЬрд╛рд╡рд╛ - рд╕рдВрд╕реНрдХрд░рдг 9.0.4
  3. рдЧрд╛рдж - 4.6
  4. MongoDB рд╕рд░реНрд╡рд░ - 3.6
  5. MongoCompass - 3.6
  6. рд╕реНрдкреНрд░рд┐рдВрдЧрдбреИрдореНрдкреЙрдиреНрдЧрдмреАрдбреА - 2.0.5-рдирд┐рдпрдо

3. рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред


рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ MongoDB рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛

рдкреНрд░рд╡рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдврд╛рдВрдЪрд╛ рд╣реЛрдЧрд╛ред Pom.xml рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╣реЛрдЧреАред

4. рдХрд╛рд░реНрдпрдХреНрд░рдо

рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

  1. MongoDB рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╣реЗрдЬрдирд╛
  2. MongoDB рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛
  3. MongoDB рд╕реЗ рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рдХрд╛рд▓ рд░рд╣рд╛ рд╣реИ
  4. MongoDB рд╕реЗ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

рдЖрдЗрдП рдЕрдм рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред

рек.рез рдХреЛрдЯрд┐

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдЧреНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред build.gradle рдлрд╝рд╛рдЗрд▓ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП build.gradle рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред

 apply plugin: 'java' repositories { mavenCentral() } dependencies { compile group: 'org.springframework.data', name: 'spring-data-mongodb', version: '2.0.5.RELEASE' implementation 'com.google.guava:guava:23.0' testImplementation 'junit:junit:4.12' } 

build.gradle рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд▓рд╛рдЗрди apply plugin: 'java' рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдкреНрд▓рдЧ-рдЗрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдЬрд╛рд╡рд╛ рдкреНрд▓рдЧрдЗрди рд╣реИред

repositories{} рдЯреИрдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЦреАрдВрдЪреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд╣рдордиреЗ рдирд┐рд░реНрднрд░ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП mavenCentral рдХреЛ рдЪреБрдирд╛ред рд╣рдо рд╕рдВрдЧрдд рдирд┐рд░реНрднрд░ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП jcenter рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

dependencies {} рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

MongoDB рдХреЗ рд▓рд┐рдП 4.2 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

MongoDB рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ AbstractMongoConfiguration рдХреНрд▓рд╛рд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред MongoConfig.java рд╡рд░реНрдЧ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ред рдпрд╣рд╛рдВ рд╣рдо xml рдХреЗ рдмрдЬрд╛рдп рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди XML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

MongoConfig.java рд╡рд░реНрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

 package com.tutorial.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractMongoConfiguration; import com.mongodb.MongoClient; @Configuration public class MongoConfig extends AbstractMongoConfiguration { @Override public String getDatabaseName() { return "local"; } @Override @Bean public MongoClient mongoClient() { return new MongoClient("127.0.0.1"); } } 

@Configuration рдЙрдкрдпреЛрдЧ MongoConfig.java рд╡рд░реНрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред @Bean MongoClient рдиреЗ MongoClient рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ред

4.3 рдореЙрдбрд▓ рд╡рд░реНрдЧ

рдЕрдм рдореЙрдбрд▓ рдХреЗ рд╡рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдо student.java рдХреЛ рдПрдХ рдореЙрдбрд▓ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЫрд╛рддреНрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдирд╛рдо рдФрд░ рдЖрдпреБред Student.java рдореЙрдбрд▓ Student.java рдЙрдкрдпреЛрдЧ POJOs рдХреЛ MongoDB рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрдЯреВрдбреЗрдВрдЯ рдореЙрдбрд▓ рдХреНрд▓рд╛рд╕

 package com.tutorial.model; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "students") public class Student { public Student(String studentName, int studentAge) { this.studentName = studentName; this.studentAge = studentAge; } @Id private String id; String studentName; int studentAge; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public int getStudentAge() { return studentAge; } public void setStudentAge(int studentAge) { this.studentAge = studentAge; } @Override public String toString() { return String.format( "Student[id=%s, studentName='%s', studentAge="+studentAge+"]", id, studentName); } } 

@Document рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред collection рдЧреБрдг рдЙрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред POJO рд╡рд░реНрдЧ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реБрд▓рдн рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред @Id рд╕рдВрдЧреНрд░рд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

4.4 CRUD рдСрдкрд░реЗрд╢рди

MongoDB рд╕реЗ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрдиреЗ, рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ, рд╣рдЯрд╛рдиреЗ, рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЬреИрд╕реЗ CRUD рдСрдкрд░реЗрд╢рди (рдмрдирд╛рдиреЗ, рдкрдврд╝рдиреЗ, рдЕрдкрдбреЗрдЯ, рдбрд┐рд▓реАрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо MongoOperations рдЙрдкрдпреЛрдЧ MongoOperations ред

рдЕрдм рд╣рдо MongoDBPOperations.java рд╡рд░реНрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ CRUD рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рд╣реИред

MongoDBPOperations рд╡рд░реНрдЧ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ CRUD рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

 package com.tutorial; import java.util.List; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import com.tutorial.model.Student; public class MongoDBPOperations { public void saveStudent(MongoOperations mongoOperation, Student student) { mongoOperation.save(student); System.out.println("Student saved successfully"); // student object got created with id. System.out.println("student : " + student); } public void searchStudent(MongoOperations mongoOperation, String critera,String value) { // query to search student Query searchStudent = new Query(Criteria.where(critera).is(value)); // find student based on the query Student resultStudent = mongoOperation.findOne(searchStudent, Student.class); System.out.println("Student found!!"); System.out.println("Student details: " + resultStudent); } public void updateStudent(MongoOperations mongoOperation, String critera,String value, String updateCriteria, String updateValue) { // query to search student Query searchStudent = new Query(Criteria.where(critera).is(value)); mongoOperation.updateFirst(searchStudent, Update.update(updateCriteria, updateValue), Student.class); System.out.println("Student got updated successfully"); } public void getAllStudent(MongoOperations mongoOperation) { List listStudent = mongoOperation.findAll(Student.class); for(Student student:listStudent) { System.out.println("Student = " + student); } } public void removeStudent(MongoOperations mongoOperation, String critera,String value) { Query searchStudent = new Query(Criteria.where(critera).is(value)); mongoOperation.remove(searchStudent, Student.class); System.out.println("Student removed successfully!! "); } } 

рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд░реНрдЧ рд╡рд╣ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ main рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИред

4.5 рдЖрд╡реЗрджрди рдХрдХреНрд╖рд╛

рдореБрдЦреНрдп рд╡рд░реНрдЧ рдЬрд┐рд╕рдореЗрдВ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рд╣реИ рд╡рд╣ Application.java рд╡рд░реНрдЧ рд╣реИред рд╣рдо рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ MongoDBPOperations рд╡рд░реНрдЧ рдХреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MongoDBPOperations ред

MongoDBPOperations рд╡рд░реНрдЧ рдХреА рдХреЙрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд╡рд░реНрдЧ

 package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) { // For Annotation ApplicationContext ctx = new AnnotationConfigApplicationContext(MongoConfig.class); MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate"); MongoDBPOperations ops = new MongoDBPOperations(); Student student = new Student("John", 15); //save student ops.saveStudent(mongoOperation, student); // get student based on search criteria ops.searchStudent(mongoOperation, "studentName", "John"); //update student based on criteria ops.updateStudent(mongoOperation, "StudentName", "John", "studentAge", "18"); // get student based on search criteria ops.searchStudent(mongoOperation, "studentName", "John"); // get all the students ops.getAllStudent(mongoOperation); //remove student based on criteria ops.removeStudent(mongoOperation, "studentName", "John"); // get all the students ops.getAllStudent(mongoOperation); } } 

рдЪрд▓рд┐рдП Application.java рд╡рд░реНрдЧ рдореЗрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдкрд░ рдХрджрдо рджрд░ рдХрджрдо рджреЗрдЦреЗрдВ:

  1. рд╣рдо рдПрдХ ApplicationContext рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реИред
  2. рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, MongoTemplate рдШрдЯрдХ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ MongoOperations рд▓рд┐рдП рдПрдХ MongoOperations рдСрдмреНрдЬреЗрдХреНрдЯ MongoOperations рдЧрдпрд╛ рдерд╛ред
  3. MongoDBOperations рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рднрд┐рдиреНрди MongoOperation рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  4. рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЙрди рдФрд░ рдЙрдореНрд░ 15 рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╛рддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  5. рд╣рдо saveMethod рд╡рд░реНрдЧ рдХреА saveMethod рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
  6. рдЙрд╕реА рддрд░рд╣, рд╣рдо рд╡рд┐рднрд┐рдиреНрди MongoDBOperations рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдХрд╣рддреЗ рд╣реИрдВред

4.6 рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рдирд╛

рдЕрдВрдд рдореЗрдВ, рдЕрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред Application.java -> Run as -> Java Application рдкрд░ рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред


рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ

рдЕрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВред MongoDB рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдЯрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рдж рд╡рд░реНрдЧ рдЖрд╡реЗрджрди

 package com.tutorial; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.mongodb.core.MongoOperations; import com.tutorial.config.MongoConfig; import com.tutorial.model.Student; public class Application { public static void main (String[] args) { // For Annotation ApplicationContext ctx = new AnnotationConfigApplicationContext(MongoConfig.class); MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate"); MongoDBPOperations ops = new MongoDBPOperations(); Student student = new Student("John", 15); //save student ops.saveStudent(mongoOperation, student); // get student based on search criteria ops.searchStudent(mongoOperation, "studentName", "John"); //update student based on criteria ops.updateStudent(mongoOperation, "StudentName", "John", "studentAge", "18"); // get student based on search criteria ops.searchStudent(mongoOperation, "studentName", "John"); // get all the students ops.getAllStudent(mongoOperation); //remove student based on criteria //ops.removeStudent(mongoOperation, "studentName", "John"); // get all the students //ops.getAllStudent(mongoOperation); } } 

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЗрдП рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред


рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрдореЗрдВрдЯ рдХрд░рдиреЗ рдкрд░ рдХрдВрд╕реЛрд▓

рдбрд┐рд▓реАрдЯ рдХрдорд╛рдВрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, MongoDB рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЬреИрд╕рд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред


рд╕реЗрд╡ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж MongoDB рдЖрдЙрдЯрдкреБрдЯ

5. рдЧреНрд░рд╣рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдЖрдк рдпрд╣рд╛рдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдВрдд

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

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


All Articles