[英]Connecting to MongoDB using jdbc driver
目的是通過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;
格式不正確。 不確定我在哪里犯了錯誤。 提前感謝您的幫助。
你可以簽出這個項目:
https://github.com/erh/mongo-jdbc
給出了兩個例子。
但總的來說,我建議使用 MongoDB Client 或一些 Spring Data 抽象。
如果您收到 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 設置類路徑,如下所示:
set classpath=C:\\DemoProject\\java db\\Mongo\\mongo.jar;
然后運行你的代碼。
或者,如果您使用的是像 eclipse 這樣的編輯器,則將此 jar 添加到您的 lib 文件夾中。
我今天早上遇到了這個問題。 關鍵是缺少mongo-java-driver.jar
。 添加jar后,項目就可以正常運行了。
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);
第一個選項
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.