Monday, October 13, 2014

Mongo with Eclipse

This is a simple program


In Eclipse create following 3 classes n add relevant mongo libraray
(in eclipse)
     RC on project -> properties-> java build path -> libraries tab -> add external JARs....
  (in net beans also same)  
     RC on project -> properties->libraries tab -> add JARs/Folder ......
make sure u start mongo server b4 executing java program



// DBManager.java
import java.net.UnknownHostException;

import com.mongodb.DB;
import com.mongodb.MongoClient;

public class DBManager {
private static DB database;

public static DB getDatabase() {
if(database == null) {
MongoClient mongo;
try {
mongo = new MongoClient("localhost", 27017);
database = mongo.getDB("usermanager");
//database = mongo.getDB("student");
//if db dnt exit it ll create one no prob
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return database;
}

}
//----------------------------------------------
//User.java.. pojo class

public class User {
private int id;
private String firstName;
private String lastName;
private String email;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}

}
//------------------------------
//Main
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import java.awt.FlowLayout;

import javax.swing.JLabel;
import javax.swing.JTextField;

import java.awt.GridLayout;

import javax.swing.BoxLayout;

import java.awt.CardLayout;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;

import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.WriteResult;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

public class Main extends JFrame {

private JPanel contentPane;
private JTextField txtId;
private JTextField txtFirstName;
private JTextField txtLastName;
private JTextField txtEmail;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Main frame = new Main();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Main() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));

JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER);
panel.setLayout(null);

JLabel lblId = new JLabel("ID");
lblId.setBounds(33, 11, 46, 14);
panel.add(lblId);

txtId = new JTextField();
txtId.setBounds(108, 8, 147, 20);
panel.add(txtId);
txtId.setColumns(10);

JLabel lblFirstName = new JLabel("First Name");
lblFirstName.setBounds(33, 53, 69, 14);
panel.add(lblFirstName);

txtFirstName = new JTextField();
txtFirstName.setBounds(108, 50, 147, 20);
panel.add(txtFirstName);
txtFirstName.setColumns(10);

JLabel lblLastName = new JLabel("Last Name");
lblLastName.setBounds(33, 96, 69, 14);
panel.add(lblLastName);

txtLastName = new JTextField();
txtLastName.setBounds(108, 93, 147, 20);
panel.add(txtLastName);
txtLastName.setColumns(10);

JLabel lblEmail = new JLabel("Email");
lblEmail.setBounds(33, 140, 46, 14);
panel.add(lblEmail);

txtEmail = new JTextField();
txtEmail.setBounds(106, 137, 149, 20);
panel.add(txtEmail);
txtEmail.setColumns(10);

//add-------------------------
JButton btnAddUser = new JButton("Add User");
btnAddUser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
User newUser = new User();
newUser.setId(Integer.parseInt(txtId.getText()));
newUser.setFirstName(txtFirstName.getText());
newUser.setLastName(txtLastName.getText());
newUser.setEmail(txtEmail.getText());

DBObject doc = createDBObject(newUser);// a row
DB userDB = DBManager.getDatabase();
DBCollection col = userDB.getCollection("user");// getting table
WriteResult result = col.insert(doc);// inserting row to d table
}

private DBObject createDBObject(User user) {
// TODO Auto-generated method stub
BasicDBObjectBuilder docBuilder = BasicDBObjectBuilder.start();

docBuilder.append("_id", user.getId());
docBuilder.append("firstName", user.getFirstName());
docBuilder.append("lastName", user.getLastName());
docBuilder.append("email", user.getEmail());
return docBuilder.get();
}
});
btnAddUser.setBounds(33, 179, 121, 23);
panel.add(btnAddUser);

//delete-------------------------
JButton btnDeleteUser = new JButton("Delete User");
btnDeleteUser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
User newUser = new User();
newUser.setId(Integer.parseInt(txtId.getText()));
// DBObject doc = createDBObject(newUser);
DB userDB = DBManager.getDatabase();
DBCollection col = userDB.getCollection("user");// getting table
DBObject query = BasicDBObjectBuilder.start()
.append("_id", newUser.getId()).get();
col.remove(query);// deleting
}
});
btnDeleteUser.setBounds(176, 179, 128, 23);
panel.add(btnDeleteUser);

JButton btnUpdateUser = new JButton("Update User");
btnUpdateUser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
User user = new User();
user.setId(Integer.parseInt(txtId.getText()));
// DBObject doc=createDBObject(user);
DB userDB = DBManager.getDatabase();
DBCollection col = userDB.getCollection("user");// getting table

DBObject query = BasicDBObjectBuilder.start()
.add("_id", user.getId()).get();
// DBCursor cursor = col.find(query);
// while(cursor.hasNext()){
// System.out.println(cursor.next());
// }
// user.setId(Integer.parseInt(txtId.getText()));
user.setFirstName(txtFirstName.getText());
user.setLastName(txtLastName.getText());
user.setEmail(txtEmail.getText());

DBObject doc = createDBObject(user);
WriteResult result = col.update(query, doc);// updating
}

private DBObject createDBObject(User user) {
BasicDBObjectBuilder docBuilder = BasicDBObjectBuilder.start();

docBuilder.append("_id", user.getId());
docBuilder.append("firstName", user.getFirstName());
docBuilder.append("lastName", user.getLastName());
docBuilder.append("email", user.getEmail());
return docBuilder.get();
}
});
btnUpdateUser.setBounds(178, 213, 128, 23);
panel.add(btnUpdateUser);

//search-------------------------
JButton btnSearchUser = new JButton("Search User");
btnSearchUser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
User user = new User();
user.setId(Integer.parseInt(txtId.getText()));

//DBObject doc = createDBObject(user);//wasnt 
DB userDB = DBManager.getDatabase();
DBCollection col = userDB.getCollection("user");
// WriteResult result=col.insert(doc);
DBObject query = BasicDBObjectBuilder.start()
.add("_id", user.getId()).get();
DBCursor cursor = col.find(query);//search...like select
ArrayList List = (ArrayList) col.find(query).toArray();
// //ArrayList<String> items =
// (ArrayList)Arrays.asList(split("\\s*,\\s*"));

while (cursor.hasNext()) {

// System.out.println(cursor.next());
//java.util.List<User> students = new ArrayList<User>();//wasnt
DBObject theObj = cursor.next();//wasnt commented//if commented prob
//it s like incrementing
System.out.println(List);//printing list on console

// BasicDBList studentsList = (BasicDBList)
// theObj.get("user");
// System.out.println(studentsList);
for (int i = 0; i < List.size(); i++) {
BasicDBObject studentObj = (BasicDBObject) List.get(i);
String cc = studentObj.getString("firstName");
String cc1 = studentObj.getString("lastName");
String cc2 = studentObj.getString("email");
System.out.println(cc);//printing a item on console
txtFirstName.setText(cc);
txtLastName.setText(cc1);
txtEmail.setText(cc2);
}
}
}

private DBObject createDBObject(User user) {
BasicDBObjectBuilder docBuilder = BasicDBObjectBuilder.start();

docBuilder.append("_id", user.getId());
if (txtFirstName.getText() != "") {
docBuilder.append("firstName", user.getFirstName());
}
if (txtLastName.getText() != "") {
docBuilder.append("lastName", user.getLastName());
}
if (txtEmail.getText() != "") {
docBuilder.append("email", user.getEmail());
}
return docBuilder.get();

}
});
btnSearchUser.setBounds(33, 213, 121, 23);
panel.add(btnSearchUser);
}
}

No comments:

Post a Comment