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

Truy xuất dữ liệu từ bộ sưu tập MongoDB vào Swing JTable

DBCursor có nghĩa là được lặp đi lặp lại. Bạn có thể sử dụng DBCursor#hasNext() giống như bạn làm với một Iterator bình thường và DBCursor#next() để tải DBObject tiếp theo . DBObject cho phép bạn get các giá trị như bạn làm với Map , bằng cách chuyển khóa

Vì vậy, giả sử chúng ta có một tập hợp table trong swingtest cơ sở dữ liệu, với các tài liệu sau

{ "_id" : ObjectId("5450700691a43786388fcc8f"), "first" : "Stack", "last" : "Overflow" }
{ "_id" : ObjectId("5450704d91a43786388fcc90"), "first" : "Pee", "last" : "Skillet" }
{ "_id" : ObjectId("5450705a91a43786388fcc91"), "first" : "Hello", "last" : "World" }
{ "_id" : ObjectId("545070b091a43786388fcc92"), "first" : "Mongo", "last" : "DB" }

Bạn chưa thực sự chỉ định những gì bạn muốn làm với bộ sưu tập, vì vậy, giả sử bạn muốn thêm dữ liệu vào JTable , bạn có thể làm điều gì đó như

MongoClient mongoClient = null;
DBCursor cursor = null;
try {
    mongoClient = new MongoClient( "localhost" , 27017 );
    DB db = mongoClient.getDB( "swingtest" );
    DBCollection coll = db.getCollection("table");
    cursor = coll.find();

    String[] columnNames = {"id", "First", "Last"};
    DefaultTableModel model = new DefaultTableModel(columnNames, 0);

    while(cursor.hasNext()) {
        DBObject obj = cursor.next();
        String first = (String)obj.get("first");
        String last = (String)obj.get("last");
        ObjectId id = (ObjectId)obj.get("_id");
        model.addRow(new Object[] { id, first, last });
    }
    table.setModel(model);

    cursor.close(); 
    mongoClient.close();
}

trong đó đối với mỗi lần lặp (tài liệu), chúng ta nhận được _id , firstlast , sau đó tạo một hàng trong đó chúng tôi thêm DefaultTableModel . Vào cuối quá trình lặp lại, chúng tôi đặt mô hình cho JTable .

Đây là ví dụ đầy đủ

import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import org.bson.types.ObjectId;

public class MongoStackoverflow {
    private static JTable table;

    public static void main(String[] args) {
        Runnable runnable = new Runnable() {
            public void run() {
                table = new JTable(){
                    @Override
                    public Dimension getPreferredScrollableViewportSize() {
                        return new Dimension(300, 150);
                    }
                };
                JPanel panel = new JPanel(new BorderLayout());
                JButton button = new JButton("Show Data");
                button.addActionListener(listener);
                panel.add(new JScrollPane(table));
                panel.add(button, BorderLayout.PAGE_END);
                JOptionPane.showMessageDialog(null, panel);
            }
        };
        SwingUtilities.invokeLater(runnable);
    }

    static ActionListener listener = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            MongoClient mongoClient = null;
            DBCursor cursor = null;
            try {
                mongoClient = new MongoClient( "localhost" , 27017 );
                DB db = mongoClient.getDB( "swingtest" );
                DBCollection coll = db.getCollection("table");
                cursor = coll.find();

                String[] columnNames = {"id", "First", "Last"};
                DefaultTableModel model = new DefaultTableModel(columnNames, 0);

                while(cursor.hasNext()) {
                    DBObject obj = cursor.next();
                    String first = (String)obj.get("first");
                    String last = (String)obj.get("last");
                    ObjectId id = (ObjectId)obj.get("_id");
                    model.addRow(new Object[] { id, first, last });
                }
                table.setModel(model);

                cursor.close(); 
                mongoClient.close();
            } catch (UnknownHostException ex) {
                Logger.getLogger(MongoStackoverflow.class.getName()).log(Level.SEVERE, null, ex);
            } finally {
                if (cursor!= null) {
                    cursor.close();
                }
                if (mongoClient != null) {
                     mongoClient.close();
                }   
            }
        }
    }; 
}

Tài nguyên




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để phát trực tuyến Kết quả truy vấn MongoDB với nodejs?

  2. Tự động xóa các đối tượng tham chiếu khi xóa trong MongoDB

  3. $ pull nhiều đối tượng trong Mongo không hoạt động

  4. Làm cách nào để bạn chọn tất cả các bản ghi từ bộ sưu tập mongodb trong golang bằng cách sử dụng mgo

  5. Tại sao các tên khóa được lưu trữ trong tài liệu trong MongodDB