tutorial español consultas java swing mongodb jtable mongodb-java

español - mongodb to java class



Recuperar datos de la colección MongoDB en Swing JTable (1)

Soy un novato en proyectos de bases de datos. No sé cómo mostrar una colección en mongodb dentro de una ventana emergente (EDIT: JTable) después de conectarla al servidor de la base de datos ... Por favor, ayúdenme en esto ... He intentado hacer esto en sql pero estoy no poder hacer uso de mongodb

JButton btnDisplay = new JButton("display"); btnDisplay.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { // To connect to mongodb server MongoClient mongoClient = new MongoClient( "localhost" , 27017 ); // Now connect to your databases DB db = mongoClient.getDB( "test" ); System.out.println("Connect to database successfully"); DBCollection coll = db.getCollection("cars"); DBCursor cursor = coll.find(); } catch (Exception a) { a.printStackTrace(); } } });


DBCursor está destinado a ser iterado a través de. Puede usar DBCursor#hasNext() como lo haría con un Iterator normal, y DBCursor#next() para obtener el siguiente DBObject . DBObject permite get valores como lo haría con un Map , pasando la clave

Entonces, digamos que tenemos una table colección en la swingtest datos de swingtest , con los siguientes documentos

{ "_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" }

En realidad, no ha especificado qué desea hacer con la colección, así que digamos que desea agregar los datos a una JTable , podría hacer algo como

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(); }

donde para cada iteración (documento), obtenemos el _id , first y last valor, luego creamos una fila en la cual agregamos el DefaultTableModel . Al final de la iteración, configuramos el modelo para JTable .

Aquí está el ejemplo completo

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 Mongo { 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(Mongo.class.getName()).log(Level.SEVERE, null, ex); } finally { if (cursor!= null) { cursor.close(); } if (mongoClient != null) { mongoClient.close(); } } } }; }

Recurso