3

目的是通过JAVA连接MongoDB远程服务器:

    URL = "jdbc:mongo://" + serverIP + ":"
    + port+ "/" +databaseName;                     
    Class.forName("mongodb.jdbc.MongoDriver");
    dbConn = getConnection(URL,mongo1, mongo1);

尝试过 Unity_trial.Jar、mongo_version.jar 文件,但出现错误是'mongodb.jdbc.MongoDriver' classNameNotFound。

如果我评论 class.forname 行,下一个错误是

   URL = "jdbc:mongo://" + serverIP + ":" + port
    + "/" +databaseName;

格式不正确。不知道我在哪里犯了错误。提前感谢您的帮助。

4

6 回答 6

3

你可以签出这个项目:

https://github.com/erh/mongo-jdbc

给出了两个例子。

但总的来说,我建议使用 MongoDB 客户端或一些 Spring Data 抽象。

于 2015-10-06T13:33:56.453 回答
2

如果您收到 ClassNotFoundException,则问题是包含mongodb.jdbc.MongoDriver该类的 jar 不在您的类路径中。如果您不确定这个类在什么 JAR 中,我建议您使用7-Zip,这样您就可以检查 jar 的内容并亲自查看该类是否存在。

使用您的方法连接到 MongoDB 的正确方法是:

Class.forName("mongodb.jdbc.MongoDriver");
String URL = "jdbc:mongo://<servername>:<port>/<databaseName>";
Connection jdbcConn = DriverManager.getConnection(url,"user","pass");


但是 MongoDB 并不是真的要与 JDBC 一起使用,所以如果您的要求允许,我建议您以“mongodb”方式获取连接。

MongoClient client = new MongoClient("localhost");

有关如何以这种方式执行此操作的详细信息,请参阅 MongoDB 文档

于 2015-10-06T14:15:40.463 回答
1

我知道回答很晚,但可能会帮助其他人。如果您正在从cmd编译和运行代码, 那么在编译之前为 mongo.jar 设置类路径,如下所示:

设置类路径=C:\DemoProject\java db\Mongo\mongo.jar;

然后运行你的代码。

或者,如果您使用的是 eclipse 之类的编辑器,则将此 jar 添加到您的 lib 文件夹中。

于 2018-07-01T19:34:27.427 回答
0

第一个选项

    MongoClient mongoClient = new MongoClient( "1.2.3.4",27017 );
    MongoDatabase database =  mongoClient.getDatabase(dataBase);
    MongoCollection<Document> collection = database.getCollection(DBcollection);

另外的选择

 MongoClientURI connectionString = new MongoClientURI("mongodb://1.2.3.4:27017");
     MongoClient mongoClient = new MongoClient(connectionString);
    MongoDatabase database =  mongoClient.getDatabase(dataBase);
    MongoCollection collection = database.getCollection(DBcollection);
于 2020-09-16T12:11:23.363 回答
0

DbSchema数据库设计器提供了一个开源的 MongoDb JDBC 驱动程序,它支持本地 MongoDb 查询,包括 find()、投影、聚合等。该驱动程序使用内部嵌入式 JavaScript 引擎。驱动程序是GitHub 上的开源。驱动程序的几个特点:

  • 支持原生MongoDb 查询
  • 调用 DatabaseMetaData 方法可以“猜测”集合结构,因此创建了一个“虚拟模式”。Designer for MongoDB使用它来表示如下图中的 MongoDb 数据库结构。
  • 实现大多数 JDBC 驱动程序方法。使用本机 MongoDB JDBC URL 进行连接,这意味着有关连接的完整功能。

MongoDB 的 DbSchema 图设计

还有一段关于如何使用驱动的代码

Class.forName("com.dbschema.MongoDbJdbcDriver");
Properties properties = new Properties();
properties.put("user", "someuser");
properties.put("password", "somepassword" );
Connection con = DriverManager.getConnection("jdbc:mongodb://host1:9160/keyspace1", properties);
// OTHER URL (SAME AS FOR MONGODB NATIVE DRIVER): mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test&connectTimeoutMS=300000
String query = "db.sampleCollection().find()";
Statement statement = con.createStatement();
ResultSet rs = statement.executeQuery( query );
Object json = rs.getObject(1);
于 2019-09-30T16:26:05.087 回答
0

我今天早上遇到了这个问题。钥匙不见了 mongo-java-driver.jar。当我添加jar时,项目可以正常运行。

于 2015-11-30T09:09:29.560 回答