Java 无法将MongoClient解析为类型

Java 无法将MongoClient解析为类型,java,mongodb,Java,Mongodb,我是MongoDB的新手,我想与我的mongod服务器建立连接。 但是我得到了一个错误,MongoClient无法解析为类型,我已经将外部Jar包含到我的项目中,但仍然无法修复该错误 这是我的代码,我认为我的代码中没有错误,但我在我的项目中包含了错误的JAR文件 import com.mongodb.*; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public

我是MongoDB的新手,我想与我的mongod服务器建立连接。 但是我得到了一个错误,
MongoClient无法解析为类型
,我已经将外部Jar包含到我的项目中,但仍然无法修复该错误

这是我的代码,我认为我的代码中没有错误,但我在我的项目中包含了错误的JAR文件

import com.mongodb.*;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

public class Dining {

public static void main(String[] args) {
Lock forks[] = new ReentrantLock[5];

try {
    MongoClient mongoClient = new  MongoClient("mongo");
    System.out.println("Connection to mongodb successful.");
    DB db = mongoClient.getDB( "mydb" );
    System.out.println("Database 'mydb' created.");
    DBCollection coll = db.createCollection("mycol", null);
    System.out.println("Collection 'mycol' created.");
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

   for(int i = 0; i<5; i++){
    forks[i] = new ReentrantLock(); 
}

Thread p1 = new Thread(new Philosopher(forks[4], forks[0], "first"));
Thread p2 = new Thread(new Philosopher(forks[0], forks[1], "second"));
Thread p3 = new Thread(new Philosopher(forks[1], forks[2], "third"));
Thread p4 = new Thread(new Philosopher(forks[2], forks[3], "fourth"));
Thread p5 = new Thread(new Philosopher(forks[3], forks[4], "fifth"));

p1.start();
p2.start();
p3.start();
p4.start();
p5.start(); 


}
}

class Philosopher implements Runnable {
Lock leftFork = new ReentrantLock();
Lock rightFork = new ReentrantLock();
String name;


public Philosopher(Lock leftFork, Lock rightFork, String name) {
this.leftFork = leftFork;
this.rightFork = rightFork;
this.name = name; 
}

@Override
public void run() {
try {
think(name);
eat(leftFork, rightFork, name); 
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}

private void eat(Lock leftFork, Lock rightFork, String name) throws Exception{
leftFork.lock();
rightFork.lock();
try
{
MongoClient mongoClient = new MongoClient("localhost");
DB db = mongoClient.getDB( "mydb" );
DBCollection coll = db.getCollection("mycol");

System.out.println(name + " eating...");
BasicDBObject doc1 = new BasicDBObject(name , " eating...");
coll.insert(doc1);

    Thread.sleep(1000);
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} 
finally{
    System.out.println(name + " done eating and now thinking...");
    MongoClient mongoClient = new MongoClient("localhost");
    DB db = mongoClient.getDB( "mydb" );
    DBCollection coll = db.getCollection("mycol");
    BasicDBObject doc2 = new BasicDBObject(name , " done eating and now thinking...");
    coll.insert(doc2);
    leftFork.unlock();
    rightFork.unlock(); 
}
}

public void think(String name) throws Exception{
try
{
MongoClient mongoClient = new MongoClient("localhost");
DB db = mongoClient.getDB( "mydb" );
DBCollection coll = db.getCollection("mycol");
System.out.println(name + " thinking...");
BasicDBObject doc = new BasicDBObject(name , " thinking...");
coll.insert(doc);
    Thread.sleep(1000);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} 
}

}
导入com.mongodb.*;
导入java.util.concurrent.locks.Lock;
导入java.util.concurrent.locks.ReentrantLock;
公务舱用餐{
公共静态void main(字符串[]args){
锁叉[]=新的可重入锁[5];
试一试{
MongoClient MongoClient=新的MongoClient(“mongo”);
System.out.println(“与mongodb的连接成功”);
DB=mongoClient.getDB(“mydb”);
System.out.println(“创建了数据库‘mydb’”);
DBCollection coll=db.createCollection(“mycl”,null);
System.out.println(“创建了集合“mycol”);
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
对于(int i=0;i相加:

# mongo-java-driver-3.4.2.jar 
# mongob-driver-3.4.2

到Eclipse Luna中我的
Web content>Web-INF>lib
文件夹解决了我的问题。使用可用的最新驱动程序,列出的是发布此文件时的最新驱动程序。

我认为
MongoDatabase
类文件在
mongodb-driver-3.8.0-beta3
jar文件中不可用。这就是您无法导入它的原因。您可以使用mongo jar的稳定版本
3.7.1
。MongoDatabase类在稳定版本中可用。来源:

您使用的是哪个依赖项管理器?我发现我使用了错误的依赖项我们必须使用mongo-java-driver-2.10.1依赖项。感谢您的建议干杯,投票会很好@Akshay NaikCan您解释w为什么添加此选项可以解决问题?这有助于其他人从你的答案中学习,而不是在不理解原因的情况下复制答案。