我正在尝试在Java Web服务中使用MongoDB。
正如Mongo教程中所建议的,我应该有一个MongoClient,让它为dbInstance,连接池,并调用dbinstance以获得到数据库的连接,该数据库位于本地主机中。
这就是我所拥有的:
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,我是否应该同步它,如果是,我如何做到这一点?
发布于 2012-12-22 01:43:43
当您尝试连接时mongo未运行时,您将抛出一个异常。
当您执行MongoClient()时,它将始终在本地主机中查找要连接的端口27017。您还可以对其进行参数化,以连接到不同的机器和/或端口。
你可以在Mongo Documentation上阅读更多关于这方面的更深入的细节。
MongoClient mongoClient = new MongoClient();
// or
MongoClient mongoClient = new MongoClient( "localhost" );
// or
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );关于您的同步问题,是的,您可以在块级别进行同步,以使其更好,而不是在方法级别。
https://stackoverflow.com/questions/13994513
复制相似问题