Ⅰ 有没有大神 java连接mongodb遇到了问题
新版本的mongodb的驱动包是依赖bson.jar和mongodb_driver_core.jar的 官网上有提示:
Note: mongodb-driver requires the following dependencies: bson and mongodb-driver-core
去看一下 ,然后对应的地方有两个包的下载,导进你的方法就ok了
下载地址:
MongoDB-driver-3.0.1.jar
mongodb-driver-core-3.0.1.jar
bson-3.0.1.jar
https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.0.1/
https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.1/
https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.1/
Ⅱ 如何通过java操作 mongodb的 存储过程
第一步:安装MongoDB
无需太多的繁杂步骤,你只要在MongoDB官方网站查看安装说明,根据自己的操作系统进行选择适应的版本即可。
第二步:启动MongoDB服务器
这一步也很简单。运行mongod.exe文件里的bin文件夹(我使用的是Windows OS系统),并启动MongoDB服务器。
在默认的情况下服务器将启动端口27017,你需要在安装过程中创建将数据存储在/data/db目录里。
第三步:启动MongoDB shell指令
你可以通过运行mongo.exe文件来启动MongoBD shell.
第四步:利用MongoDB创建数据库
利用MongoDB在MongoDB shell中输入以下内容建立一个名为“company”的数据库。
1.use company 记住,除非你在MangoDB里保存了一些东西,否则它不会自动为你保存。
使用下面的命令帮你查看可用的数据库,它会显示“company”尚未被创建。
1.show dbs;
第五步:在MongoDB中保存数据
使用下面的命令来保存employee 数据代表一个collection,将其命名为employees.
1.employee = {name : “A”, no : 1}
2.db.employees.save(employee)
通过使用下面的命令来查看collection里的数据。
1.db.users.find();
如何使用Java操作MongoDB?
下面是是一段简单的Java代码,你可以在这里获得mongo-java驱动。很简单,只需要使用下面的代码,重复上面的操作即可。
1.package com.eviac.blog.mongo;
2.
3.import java.net.UnknownHostException;
4.
5.import com.mongodb.BasicDBObject;
6.import com.mongodb.DB;
7.import com.mongodb.DBCollection;
8.import com.mongodb.DBCursor;
9.import com.mongodb.Mongo;
10.import com.mongodb.MongoException;
11.
12.public class MongoDBClient {
13.
14. public static void main(String[] args) {
15.
16. try {
17.
18. Mongo mongo = new Mongo(“localhost”, 27017);
19.
20. DB db = mongo.getDB(“company”);
21.
22. DBCollection collection = db.getCollection(“employees”);
23.
24. BasicDBObject employee = new BasicDBObject();
25. employee.put(“name”, “Hannah”);
26. employee.put(“no”, 2);
27.
28. collection.insert(employee);
29.
30. BasicDBObject searchEmployee = new BasicDBObject();
31. searchEmployee.put(“no”, 2);
32.
33. DBCursor cursor = collection.find(searchEmployee);
34.
35. while (cursor.hasNext()) {
36. System.out.println(cursor.next());
37. }
38.
39. System.out.println(“The Search Query has Executed!”);
40.
41. } catch (UnknownHostException e) {
42. e.printStackTrace();
43. } catch (MongoException e) {
44. e.printStackTrace();
45. }
46.
47. }
48.
49.}
结果如下:
1.{ “_id” : { “$oid” : “4fec74dc907cbe9445fd2d70”} , “name” : “Hannah” , “no” : 2}
2.The Search Query has Executed!
小结:
随着互联网Web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展也非常迅速。本文浅显的谈及了如何使用Java操作MongoDB以及了解MongoDB如何进行日常的数据库操作的问题。
Ⅲ 如何用Java操作MongoDB
HelloWorld程序
学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序。
首先,要通过Java操作Mongodb,必须先下载Mongodb的Java驱动程序,可以在这里下载。
新建立一个Java工程,将下载的驱动程序放在库文件路径下,程序代码如下:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importcom.mongodb.BasicDBObject;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
/**
*Java+MongoDBHelloworldExample
*
*/
publicclassApp{
publicstaticvoidmain(String[]args){
try{
//实例化Mongo对象,连接27017端口
Mongomongo=newMongo("localhost",27017);
//连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立
DBdb=mongo.getDB("yourdb");
//GetcollectionfromMongoDB,databasenamed"yourDB"
//从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立
DBCollectioncollection=db.getCollection("yourCollection");
//使用BasicDBObject对象创建一个mongodb的document,并给予赋值。
BasicDBObjectdocument=newBasicDBObject();
document.put("id",1001);
document.put("msg","helloworldmongoDBinJava");
//将新建立的document保存到collection中去
collection.insert(document);
//创建要查询的document
BasicDBObjectsearchQuery=newBasicDBObject();
searchQuery.put("id",1001);
//使用collection的find方法查找document
DBCursorcursor=collection.find(searchQuery);
//循环输出结果
while(cursor.hasNext()){
System.out.println(cursor.next());
}
System.out.println("Done");
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(MongoExceptione){
e.printStackTrace();
}
}
}
最后,输出的结果为:
{"_id":{"$oid":"4dbe5596dceace565d229dc3"},
"id":1001,"msg":"helloworldmongoDBinJava"}
Done
在上面的例子中,演示了使用Java对Mongodb操作的重要方法和步骤,首先通过创建Mongodb对象,传入构造函数的参数是Mongodb的数据库所在地址和端口,然后使用
getDB方法获得要连接的数据库名,使用getCollection获得数据集合的名,然后通过新建立BasicDBObject对象去建立document,最后通过collection的insert方法,将建立的document保存到数据库中去。而collection的find方法,则是用来在数据库中查找document。
从Mongodb中获得collection数据集
在Mongodb中,可以通过如下方法获得数据库中的collection:
DBCollectioncollection=db.getCollection("yourCollection");
如果你不知道collection的名称,可以使用db.getCollectionNames()获得集合,然后再遍历,如下:
DBdb=mongo.getDB("yourdb");
Setcollections=db.getCollectionNames();
for(StringcollectionName:collections){
System.out.println(collectionName);
}
完成的一个例子如下:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importjava.util.Set;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
/**
*Java:GetcollectionfromMongoDB
*
*/
publicclassGetCollectionApp{
publicstaticvoidmain(String[]args){
try{
Mongomongo=newMongo("localhost",27017);
DBdb=mongo.getDB("yourdb");
Set<String>collections=db.getCollectionNames();
for(StringcollectionName:collections){
System.out.println(collectionName);
}
DBCollectioncollection=db.getCollection("yourCollection");
System.out.println(collection.toString());
System.out.println("Done");
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(MongoExceptione){
e.printStackTrace();
}
}
}
Mongodb中如何插入数据
下面,讲解下如何使用4种方式,将jsON数据插入到Mongodb中去。首先我们准备JSON
格式的数据,如下:
{
"database":"mkyongDB",
"table":"hosting",
"detail":
{
records:99,
index:"vps_index1",
active:"true"
}
}
}
我们希望用不同的方式,通过JAVA代码向Mongodb插入以上格式的JSON数据
第一种方法,是使用BasicDBObject,方法如下代码所示:
BasicDBObjectdocument=newBasicDBObject();
document.put("database","mkyongDB");
document.put("table","hosting");
BasicDBObjectdocumentDetail=newBasicDBObject();
documentDetail.put("records","99");
documentDetail.put("index","vps_index1");
documentDetail.put("active","true");
document.put("detail",documentDetail);
collection.insert(document);
第二种方法是使用BasicDBObjectBuilder对象,如下代码所示:
=BasicDBObjectBuilder.start()
.add("database","mkyongDB")
.add("table","hosting");
Detail=BasicDBObjectBuilder.start()
.add("records","99")
.add("index","vps_index1")
.add("active","true");
documentBuilder.add("detail",documentBuilderDetail.get());
collection.insert(documentBuilder.get());
第三种方法是使用Map对象,代码如下:
MapdocumentMap=newHashMap();
documentMap.put("database","mkyongDB");
documentMap.put("table","hosting");
MapdocumentMapDetail=newHashMap();
documentMapDetail.put("records","99");
documentMapDetail.put("index","vps_index1");
documentMapDetail.put("active","true");
documentMap.put("detail",documentMapDetail);
collection.insert(newBasicDBObject(documentMap));
第四种方法,也就是最简单的,即直接插入JSON格式数据
String json="{'database' : 'mkyongDB','table' : 'hosting',"+
"'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}";
DBObject dbObject=(DBObject)JSON.parse(json);
collection.insert(dbObject);
这里使用了JSON的parse方法,将解析后的JSON字符串转变为DBObject对象后再直接插入到collection中去。
完整的代码如下所示:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importjava.util.HashMap;
importjava.util.Map;
importcom.mongodb.BasicDBObject;
importcom.mongodb.BasicDBObjectBuilder;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.DBObject;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
importcom.mongodb.util.JSON;
/**
* Java MongoDB : Insert a Document
*
*/
publicclass InsertDocumentApp {
publicstaticvoid main(String[] args){
try{
Mongo mongo=newMongo("localhost",27017);
DB db=mongo.getDB("yourdb");
//get a single collection
DBCollection collection=db.getCollection("mmyColl");
//BasicDBObject example
System.out.println("BasicDBObject example...");
BasicDBObject document=newBasicDBObject();
document.put("database","mkyongDB");
document.put("table","hosting");
BasicDBObject documentDetail=newBasicDBObject();
documentDetail.put("records","99");
documentDetail.put("index","vps_index1");
documentDetail.put("active","true");
document.put("detail", documentDetail);
collection.insert(document);
DBCursor cursorDoc=collection.find();
while(cursorDoc.hasNext()){
System.out.println(cursorDoc.next());
}
collection.remove(newBasicDBObject());
//BasicDBObjectBuilder example
System.out.println("BasicDBObjectBuilder example...");
BasicDBObjectBuilder documentBuilder=BasicDBObjectBuilder.start()
.add("database","mkyongDB")
.add("table","hosting");
BasicDBObjectBuilder documentBuilderDetail=BasicDBObjectBuilder.start()
.add("records","99")
.add("index","vps_index1")
.add("active","true");
documentBuilder.add("detail", documentBuilderDetail.get());
collection.insert(documentBuilder.get());
DBCursor cursorDocBuilder=collection.find();
while(cursorDocBuilder.hasNext()){
System.out.println(cursorDocBuilder.next());
}
collection.remove(newBasicDBObject());
//Map example
System.out.println("Map example...");
Map documentMap=newHashMap();
documentMap.put("database","mkyongDB");
documentMap.put("table","hosting");
Map documentMapDetail=newHashMap();
documentMapDetail.put("records","99");
documentMapDetail.put("index","vps_index1");
documentMapDetail.put("active","true");
documentMap.put("detail", documentMapDetail);
collection.insert(newBasicDBObject(documentMap));
DBCursor cursorDocMap=collection.find();
while(cursorDocMap.hasNext()){
System.out.println(cursorDocMap.next());
}
collection.remove(newBasicDBObject());
//JSON parse example
System.out.println("JSON parse example...");
String json="{'database' : 'mkyongDB','table' : 'hosting',"+
"'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}}";
DBObject dbObject=(DBObject)JSON.parse(json);
collection.insert(dbObject);
DBCursor cursorDocJSON=collection.find();
while(cursorDocJSON.hasNext()){
System.out.println(cursorDocJSON.next());
}
collection.remove(newBasicDBObject());
}catch(UnknownHostException e){
e.printStackTrace();
}catch(MongoException e){
e.printStackTrace();
}
}
}
Ⅳ java链接mongo数据库需要引什么jar包
需要的jar
mongo-java-driver
maven仓库里面,mongodb3.0的连接驱动
<!--MongoDB数据库连接驱动-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.0</version>
</dependency>
2.连接过程代码
importorg.bson.Document;
importcom.mongodb.MongoClient;
importcom.mongodb.client.MongoCollection;
importcom.mongodb.client.MongoDatabase;
/**
*2016年8月5日下午3:19:44
*
*@author3306TODO测试Mongo数据库连接
*
*/
publicclassTestMongo{
;
privatestaticStringhost="192.168.0.149";//mongo数据库服务器地址,本地为127.0.0.1
privatestaticintport=20000;//mongo默认为27017端口
/**
*获取数据库集合
*
*@paramdatabaseName
*数据库名称
*@paramcollectionName
*集合名称
*@returnMongoCollection<Document>
*/
publicstaticMongoCollection<Document>getMongoCollection(StringdatabaseName,StringcollectionName){
returngetMongoDatabase(databaseName).getCollection(collectionName);
}
/**
*获取mongo数据库
*
*@paramdatabaseName
*数据库名称
*@returnMongoDatabase
*/
(StringdatabaseName){
mongoClient=newMongoClient(host,port);
returnmongoClient.getDatabase(databaseName);
}
/**
*测试数据连接
*
*@paramargs
*/
publicstaticvoidmain(String[]args){
StringdatabaseName="mojing";//数据库
StringcollectionName="user";//集合名称
MongoCollection<Document>userCollection=getMongoCollection(databaseName,collectionName);
System.out.println(userCollection.count());
}
}