рдЬрд╛рд╡рд╛ рдИрдИ 6 рдореЗрдВ MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛



MongoDB рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЙрдиреНрдореБрдЦ NoSQL DBMS рд╣реИ рдЬрд┐рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреАрдорд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ ред рд╕рд╛рдЗрдЯ , рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдПрдХ рдЬрд╛рд╡рд╛ рдИрдИ 6 рдЖрд╡реЗрджрди рдореЗрдВ MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

рд╣рдо рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЖрд╡реЗрджрди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ MongoDB рдореЗрдВ рдЪрдпрди - рд╕рдВрдЪрд╛рд▓рди рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред NetBeans 7.0 рдФрд░ GlassFish рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕реНрдерд╛рдкрдирд╛

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдордВрдЪ рдХреЗ рд▓рд┐рдП MongoDB рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред
рдлрд┐рд░ рд╣рдо рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рди рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ mongod.exe рдЪрд▓рд╛рдПрдБред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ / рдбреЗрдЯрд╛ / рдбреАрдмреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ --dbpath [рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо] рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг

NetBeans рдореЗрдВ, рд╣рдо рдПрдХ WebApplication Project рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдо рдЧреНрд▓рд╛рд╕рдлрд┐рд╢ рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╛рд╡рд╛ рдИрдИрдИ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд╡рд╛ рдИрдИ 6 рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЙрдиреНрдЯреЗрдХреНрдЯреНрд╕ рдФрд░ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рдЖрдЗрдЯрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдФрд░ рдЬрд╛рд╡рд╛рд╕реЗрд╡рд░ рдлреЗрд╕реЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдЬреЛрдбрд╝реЗрдВред

MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ MongoDB Java рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреЛрдб

рдЖрд╡реЗрджрди рдкреБрд╕реНрддрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдкреБрд╕реНрддрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдБ:

import com.mongodb.BasicDBObject; import com.mongodb.DBObject; import javax.enterprise.inject.Model; import javax.validation.constraints.Size; @Model public class Book { @Size(min = 1, max = 20) private String name; @Size(min = 1, max = 20) private String author; @Size(min = 1, max = 20) private String language; private int year; //     public BasicDBObject toDBObject() { BasicDBObject document = new BasicDBObject(); document.put("name", name); document.put("year", year); document.put("language", language); document.put("author", author); return document; } public static Book fromDBObject(DBObject document) { Book b = new Book(); b.name = (String) document.get("name"); b.year = (Integer) document.get("year"); b.language = (String) document.get("language"); b.author = (String) document.get("author"); return b; } } 

рдпрд╣рд╛рдБ, toDBObject рдФрд░ fromDBObject рддрд░реАрдХреЗ рдмреБрдХ рдХреНрд▓рд╛рд╕ рд╕реЗ DBObject рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред DBObject рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬреЛ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ BasicDBObject рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдо рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рд╡рд╛рд▓реЗ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдмреАрди рднреА рдмрдирд╛рддреЗ рд╣реИрдВ:

 import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.Mongo; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.ejb.Stateless; import javax.inject.Inject; import javax.inject.Named; @Stateless @Named public class BookSessionBean { @Inject Book book; private DBCollection bookCollection; @PostConstruct private void initDB() throws UnknownHostException { Mongo mongo = new Mongo(); DB db = mongo.getDB("booksDB"); bookCollection = db.getCollection("books"); if (bookCollection == null) { bookCollection = db.createCollection("books", null); } } public void createBook() { BasicDBObject doc = book.toDBObject(); bookCollection.insert(doc); } public List<Book> getBooks() { List<Book> books = new ArrayList<Book>(); DBCursor cursor = bookCollection.find(); while (cursor.hasNext()) { DBObject dbo = cursor.next(); books.add(Book.fromDBObject(dbo)); } return books; } } 

рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдиреЛрдЯреЗрд╢рди @PostConstruct рдХреЗ рд╕рд╛рде "initDB" рд╡рд┐рдзрд┐ рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
DBCollection рд╕рдВрдЧреНрд░рд╣ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЧреЗрдЯрдмреБрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдЦреЛрдЬ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкреБрд╕реНрддрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд SQL рдХреНрд╡реЗрд░реА * рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЦреЛрдЬ рд╡рд┐рдзрд┐ рдПрдХ DBCursor рдХрд░реНрд╕рд░ рд▓реМрдЯрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП "index.xhtml" рдмрджрд▓реЗрдВ:

 <h1> Add new book </h1> <h:form> Name: <h:inputText value="#{book.name}" size="20" /> <br/> Year: <h:inputText value="#{book.year}" size="6" /> <br/> Language: <h:inputText value="#{book.language}" size="20" /> <br/> Author: <h:inputText value="#{book.author}" size="20" /> <br/> <h:commandButton actionListener="#{bookSessionBean.createBook()}" action="show" title="Add" value="submit"/> </h:form> 

рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдЬ "show.xhtml" рднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 <h:form> <h:dataTable value="#{bookSessionBean.books}" var="b"> <h:column><f:facet name ="header">Name</f:facet>#{b.name}</h:column> <h:column><f:facet name ="header">Year</f:facet>#{b.year}</h:column> <h:column><f:facet name ="header">Language</f:facet>#{b.language}</h:column> <h:column><f:facet name ="header">Author</f:facet>#{b.author}</h:column> </h:dataTable> </h:form> 

рдкрд░рд┐рдгрд╛рдо

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдореБрдЦреНрдп рдкреГрд╖реНрда рджреЗрдЦреЗрдВрдЧреЗ:



рдЦреЗрддреЛрдВ рдореЗрдВ рднрд░рдиреЗ рдФрд░ рд╕рдмрдорд┐рдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо "show.xhtml" рдкреГрд╖реНрда рдкрд░ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред


рд╕рдВрджрд░реНрдн

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


All Articles