使用mongo java driver 3.4.2
我在CMD" mongod"中使用此命令运行Mongodb。我没有使用" mongod --auth" !我不知道为什么它仍然给我例外。
就像在CMD中一样,如果服务器没有在-auth上运行,我们就不必提供用户名和密码。同样我想要实现。
我创建了将数据插入mongo db的应用程序 实际上它只是成功地插入数据,因为我使用swingworker,因此我的应用程序在异常时间内冻结了一段时间,因此我仍然会遇到异常而且它对我的应用程序变慢。
MongoDB驱动程序有限制吗?我们无法插入数据 认证。
-vm
C:\Program Files (x86)\Java\jdk1.8.0_121\bin\javaw.exe
这是异常
public void doJob() {
server.progressbar.setVisible(true);
server.progressbar.setIndeterminate(true);
SwingWorker worker = new SwingWorker() {
@Override
protected void done() {
server.progressbar.setIndeterminate(false);
server.progressbar.setVisible(false);
server.total.setText("");
CoonectToDB obj=new CoonectToDB();
obj.callcollections();
NoAuthCoonectToDB obj2=new NoAuthCoonectToDB();
obj2.NoAuthconnectDB();
}
@Override
protected void process(List chunks) {
// Here you can process the result of "doInBackGround()"
// Set a variable in the dialog or etc.
}
@Override
protected Object doInBackground() {
try{
server.newcol.setEnabled(false);
server.ecoll.setEnabled(false);
server.ubtn.setEnabled(false);
String logid="Log-"+logname.getText();
JList dataList=(loglist);
int sixe=dataList.getModel().getSize();
ArrayList arrayList = new ArrayList();
for (int i = 0; i <sixe; i++) {
arrayList.add(dataList.getModel().getElementAt(i));
server.total.setText("Total Log-"+i);
}
System.out.println(arrayList);
Iterator itr = arrayList.iterator();
String host=hname.getText();
String port=spport.getValue().toString();
Integer pt = Integer.valueOf(port);
MongoClient mongoClient = new MongoClient(new ServerAddress(host, pt),
MongoClientOptions.builder()
.serverSelectionTimeout(2000)
.build());
DB db = mongoClient.getDB( dbname.getText());
DBCollection bookCollection = db.getCollection(collectionss.getSelectedValue().toString());
BasicDBObject doc = new BasicDBObject(logid, arrayList);
bookCollection.insert(doc);
Icon icon = new ImageIcon("src\\images\\done.png");
processimage.setIcon(icon);
server.consolelog.setText("INFO: Data is inserted succsesfully");
}catch(Exception e){
server.consolelog.setText(e.toString());
}finally{
server.newcol.setEnabled(true);
server.ecoll.setEnabled(true);
server.ubtn.setEnabled(true);
}
return null;
}
};
worker.execute();
}
感谢您帮助我
答案 0 :(得分:0)
实际上它已经解决了,我不知道为什么在我改变这条线之后才能正常工作。
collectionss.getSelectedValue().toString();// Jlist
到
Object value = collectionss.getSelectedValue().toString() ;
DBCollection bookCollection = db.getCollection(value.toString);
我不完全确切,但我认为它必须对此SCRAM-SHA-1做一些事情。