0

我正在尝试在 Java Web 服务中使用 MongoDB。

正如 Mongo 教程中所建议的,我应该有一个 MongoClient,让它成为 dbInstance、连接池并调用 dbinstance 来连接到位于 localhost 中的数据库。

所以这就是我所拥有的:

private static MongoClient dbInstance = null;

public static DB getDBInstance() {
    if (dbInstance == null) {
        try {
            dbInstance = new MongoClient();
            registerShutdownHook();
        }
        catch (Exception exc) {
            System.out.println("Exception");
        }
    }
    return dbInstance.getDB("SAED");
}

我不明白的是,如果我连接到数据库,我怎么能理解,因为 il mongo 也不起作用(通过启动 mongod 服务)它不会引发异常。

还有一个问题,我有多个线程调用 Class.getDBInstance,我应该同步它吗?如果是,我该怎么做?

4

1 回答 1

0

当您尝试连接时 mongo 未运行时,您将被抛出异常。

当您执行 MongoClient() 时,它将始终在 localhost 中查找要连接的端口 27017。您还可以对其进行参数化以连接到不同的机器和/或端口。

您可以在Mongo 文档中阅读有关此内容的更多详细信息。

MongoClient mongoClient = new MongoClient();
// or
MongoClient mongoClient = new MongoClient( "localhost" );
// or
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

关于您的同步问题,是的,您可以在块级别而不是在方法级别进行同步以使其更好。

于 2012-12-21T17:43:43.183 回答