Подключение к MongoDB в Java - PullRequest
0 голосов
/ 22 мая 2018

Я следую этому руководству, чтобы узнать, как подключиться к MongoDB в Java, однако я столкнулся с проблемой и, несмотря на исследования, не могу ее исправить.Я делаю именно то, что говорит мне учебник:

  1. Создайте новый проект Java
  2. Добавьте mongo-java-driver (я убедился, что использовал правильный, включая файл bson), что казалось проблемой в других вопросах).
  3. Я создаю новый класс и создаю новый MongoClient

Это мой код до сих пор:

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


public class MongoDemo {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        DB db = mongoClient.getDB("test");

    }

}

Теперь, я думаю, проблема в том, как я добавил mongo-java-driver, так как я получаю следующую ошибку в первой строке: The import com.mongodb.MongoClient cannot be resolved, но я не могу понять, какисправить это.

Я загрузил правильный файл и добавил его в качестве внешней библиотеки.Когда я набираю import com.mongodb., я получаю несколько предложений, однако MongoClient не является одним из них.Что я сделал не так?

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

В дополнение к ответу Дейла:

ошибка такого рода может возникать из-за неправильного добавления версий драйверов в POM.Я рекомендую вам правильно проверить POM-файл и попробовать изменить версии драйвера mongodb java.

Также будьте внимательны и осторожны при подключении старых и более новых драйверов, поскольку существует различие в синтаксисе.

Для подключения кавтономный экземпляр MongoDB (более старые драйверы, такие как 3.4):

MongoClient mongoClient = new MongoClient();

Для подключения к автономному экземпляру MongoDB (более новые драйверы, такие как 3.8):

MongoClient mongoClient = MongoClients.create()

Это различие может быть не таким заметным,но добавляет дополнительные проблемы.

0 голосов
/ 22 мая 2018

Возможно, вы ищете что-то вроде этого.

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

public class MongoDemo {

    public static void main(String[] args) {
        ServerAddress serverAddress = new ServerAddress("http://localhost", 27017);
        MongoClient mongoClient = new MongoClient(serverAddress);
        DB db = mongoClient.getDB("test");
    }
}

При создании этого я создал проект maven для лучшего управления зависимостями и включил самые последние зависимости MongoDB.Вот мой POM.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>MongoDBExample</groupId>
    <artifactId>MongoDBExample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>3.7.0</version>
        </dependency>
    </dependencies>
</project>

Я не проверял это, однако, обратите внимание, как изменился какой-то код.Это потому, что часть кода, использованного в демоверсии, устарела.Это должно быть близко.

...