Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB和Java_Java_Mongodb_Mongodb Java - Fatal编程技术网

MongoDB和Java

MongoDB和Java,java,mongodb,mongodb-java,Java,Mongodb,Mongodb Java,我试图在JavaWeb服务中使用MongoDB 正如Mongo教程中所建议的,我应该有一个MongoClient,让它成为dbInstance、连接池,并调用dbInstance来获得到数据库的连接,该数据库位于localhost中 这就是我所拥有的: private static MongoClient dbInstance = null; public static DB getDBInstance() { if (dbInstance == null) { try

我试图在JavaWeb服务中使用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");
}
我不明白的是,如果我连接到DB,我如何理解,因为il mongo也不工作(通过启动mongod服务),它不会抛出异常


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

当您尝试连接时mongo没有运行时,您将抛出一个异常

执行MongoClient()时,它将始终在本地主机中查找端口27017以进行连接。您还可以将其参数化以连接到其他计算机和/或端口

您可以在上阅读有关此的更深入的详细信息

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

问题是它不会引发异常!应该是的,但不是!但最糟糕的是我做了MongoClient(“随机IP”)它不会抛出异常o。O@litiales如果mongod实例不可用,MongoClient构造函数不会抛出异常的主要原因是,mongo服务器在客户端应用程序生命周期内的任何时候都可能停机,因此,应用程序必须在访问服务器的每个地方处理服务器故障,而不仅仅是在调用MongoClient构造函数时?如果是这样,您可以定义MongoTemplate并将其注入到任何需要连接的地方(保存文档、搜索集合等)。看看SpringData。不,我没有使用框架。这是你无法改变的吗?它们的设计目的是让你的世界不那么痛苦;)我应该使用什么样的框架?我想这取决于您的情况,不过Spring是一个被广泛采用的选择。您可以在我在这里创建的一个小REST应用程序中看到Spring data/MongoTemplate的使用示例:
MongoClient mongoClient = new MongoClient();
// or
MongoClient mongoClient = new MongoClient( "localhost" );
// or
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );