MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để tạo kết nối cơ sở dữ liệu Mongo trong context.xml trong dự án web Java?

Mã servlet / JSP mẫu với cấu hình để kết nối với cơ sở dữ liệu MongoDB và xem kết quả truy vấn trong trang JSP.

(i) Cấu hình JNDI để truy cập cơ sở dữ liệu MongoDB (META-INF / context.xml):

<Context>
    <Resource name="mongodb/mongoClient"
              auth="Container"
              type="com.mongodb.MongoClient"
              closeMethod="close"
              factory="com.mongodb.client.jndi.MongoClientFactory"
              singleton="true"
              connectionString="mongodb://localhost:27017" />
</Context>

(ii) WEB-INF / web.xml (bao gồm điều này trong thẻ "ứng dụng web"):

 <resource-ref>
     <res-ref-name>mongodb/mongoClient</res-ref-name>
     <res-type>com.mongodb.MongoClient</res-type>
     <res-auth>Container</res-auth>
</resource-ref>

(iii) Lớp Servlet:

public class TestServlet extends HttpServlet {

    @Resource(name="java:comp/env/mongodb/mongoClient")
    private MongoClient client;

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        
        // ---- This works too; can be used instead of the @Resource  ----
        //try {
        //  Context ctx = new InitialContext();
        //  client = (MongoClient) ctx.lookup("java:comp/env/mongodb/mongoClient");
        //}
        //catch (NamingException ex) {
        //  throw new ServletException(ex);
        //}

        MongoCollection<Document> coll = client.getDatabase("test")
                                               .getCollection("books");
        
        List<Document> docData = new ArrayList<>();
        coll.find()
             .projection(new Document("title", 1)
                                .append("author", 1)
                                .append("_id", 0))
            .limit(10)
            .into(docData);
        List<String> data = docData.stream()
                                   .map(doc -> doc.get("title") + ", " + doc.get("author"))
                                   .collect(Collectors.toList());
        req.setAttribute("bookdata", data);
    
        RequestDispatcher view = req.getRequestDispatcher("view.jsp");
        view.forward(req, resp);
    }
}

(iv) view.jsp:

<html>
    <head>
        <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
        <title>Test App</title>
    </head>
    <body>
        <h3>Books List</h3>
    
        <c:forEach items="${bookdata}" var="book">
            ${book}<br>
        </c:forEach>
    ...



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tải trọng đọc bị lệch trên bộ bản sao Mongo

  2. Truy vấn Mongo trên các trường con

  3. Thông báo cho giao diện người dùng Angular khi trạng thái trong phần phụ trợ Node (MongoDB) thay đổi

  4. Đếm các trường trong Bộ sưu tập MongoDB

  5. MongoDB / Express - Cách chuyển đổi cơ sở dữ liệu sau khi kết nối qua connect ()