目的是通过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;
格式不正确。 不确定我在哪里犯了错误。 感谢您提前的帮助。
如果您收到 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 文档
我知道回答已经很晚了,但可能会帮助别人。如果您从 cmd 编译并运行代码,则在编译之前为 mongo.jar 设置类路径,如下所示:
设置类路径=C:\DemoProject\java db\Mongo\mongo.jar;
然后运行您的代码。
或者如果您使用像 eclipse 这样的编辑器,则将此 jar 添加到您的 lib 文件夹中。
DbSchema 数据库设计器提供了一个开源 MongoDb JDBC 驱动程序,它支持本机 MongoDb 查询,包括 find()、投影、聚合等。 该驱动程序使用内部嵌入式 JavaScript 引擎。 该驱动程序是GitHub 上的开源。 驱动程序的一些功能:
以及一段关于如何使用驱动程序的代码
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);
我今天早上遇到了这个问题。 钥匙不见了
mongo-java-driver.jar
。
当我添加jar后,项目可以正常运行。
第一个选项
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);
(我意识到这是一个非常迟到的答案,但由于我昨天还在为此苦苦挣扎,所以无论如何我都会发布它)
现在,Unity JDBC 驱动程序附带了完整的 Java 代码示例。简而言之:
Java代码
<usual java.sql import stuff>
import mongodb.jdbc.MongoStatement;
...
Connection con = null;
String sql;
try
{
// Create new instance of Mongo JDBC Driver and make connection.
System.out.println("Registering Driver.");
// Note: Registering driver using Class.forName() is not required.
Class.forName("mongodb.jdbc.MongoDriver");
// Connect to the URL. The last part is the database name (tpch in this case).
String url = "jdbc:mongodb://server/database/tpch?rebuildschema=true";
System.out.println("Making a connection to: " + url);
con = DriverManager.getConnection(url, "user", "password");
System.out.println("Connection successful.\n");
... <run queries etc>
构建+运行
javac -cp .;../unityjdbc.jar test/ExampleQuery.java
java -cp .;../unityjdbc.jar test.ExampleQuery