首页数据库java连接mongodb数据库(用java怎么连接一个不带账号密码的mongodb数据库)

java连接mongodb数据库(用java怎么连接一个不带账号密码的mongodb数据库)

编程之家2023-10-20100次浏览

大家好,今天小编来为大家解答java连接mongodb数据库这个问题,用java怎么连接一个不带账号密码的mongodb数据库很多人还不知道,现在让我们一起来看看吧!

java连接mongodb数据库(用java怎么连接一个不带账号密码的mongodb数据库)

用java怎么连接一个不带账号密码的mongodb数据库

package maven.demo.test;

import java.util.ArrayList;

import java.util.List;

import com.mongodb.BasicDBObject;

import com.mongodb.DB;

import com.mongodb.DBCollection;

java连接mongodb数据库(用java怎么连接一个不带账号密码的mongodb数据库)

import com.mongodb.DBObject;

import com.mongodb.Mongo;

import com.mongodb.QueryOperators;

public class MongoDB{

private static void print(String str){

System.out.println(str);

java连接mongodb数据库(用java怎么连接一个不带账号密码的mongodb数据库)

}

public static void main(String[] args){

try{

//创建连接

Mongo m=new Mongo("127.0.0.1", 27017);

//得到数据库

DB db=m.getDB("test");

//得到所有数据库

// List<String> colls=m.getDatabaseNames();

// for(String str:colls){

// System.out.println(str);

//}

////得到所有的集合(表)

// for(String collection:db.getCollectionNames()){

// System.out.println(collection);

//}

//删除一个数据库

//m.dropDatabase("sun");

//得到sun表

DBCollection coll=db.getCollection("things");

//查看一个表的索引

// for(DBObject index:coll.getIndexInfo()){

// System.out.println(index);

//}

// DBObject myDoc=coll.findOne();

// System.out.println(myDoc);

//添加

// BasicDBObject doc=new BasicDBObject();

// doc.put("name","sunshan");

// doc.put("sex","男");

// doc.put("age", 22);

//coll.insert(doc);

//删除

//coll.remove(doc);

// BasicDBObject doc1=new BasicDBObject();

// doc1.put("i", 0);

// doc1.put("j","foo");

// BasicDBObject doc2=new BasicDBObject();

// doc2.put("hello","world");

// doc1.put("doc2", doc2);

// coll.insert(doc1);

//修改

// BasicDBObject doc3=new BasicDBObject();

// doc3.put("x", 6);

// BasicDBObject doc4=new BasicDBObject();

// doc4.put("x", 1);

// coll.update(doc3, doc4,true,false);

//如果数据库不存在就添加|多条修改 false只修改第一天,true如果有多条就不修改

//条件查询

//System.out.println(coll.find(doc4));

//coll.findAndRemove(doc4);

////批量插入

// List<DBObject> datas=new ArrayList<DBObject>();

// for(int i=0;i<10;i++){

// BasicDBObject bd=new BasicDBObject();

// bd.put("name","data");

// bd.append("age", i);

// datas.add(bd);

//}

// coll.insert(datas);

//添加

// BasicDBObjectBuilder documentBuilder= BasicDBObjectBuilder.start();

// documentBuilder.add("database","mkyongDB");

// documentBuilder.add("table","hosting");

// BasicDBObjectBuilder documentBuilderDetail= BasicDBObjectBuilder.start();

// documentBuilderDetail.add("records","99");

// documentBuilderDetail.add("index","vps_index1");

// documentBuilderDetail.add("active","true");

// documentBuilder.add("detail", documentBuilderDetail.get());

// coll.insert(documentBuilder.get());

//添加

// Map<Object,Object> map=new HashMap<Object,Object>();

// map.put("a", 1);

// map.put("b","b");

// coll.insert(new BasicDBObject(map));

//添加

// String json="{'1':'1','2':'2',"+"'11':{'1': 1,'2':'2','3':'3'}}";

// DBObject dbobject=(DBObject)JSON.parse(json);

// coll.insert(dbobject);

//更新

// BasicDBObject bdo=new BasicDBObject();

// bdo.put("x", 11);

// coll.update(new BasicDBObject().append("x", 0), bdo);

//更新

// BasicDBObject bdo=new BasicDBObject().append("$inc", new BasicDBObject().append("x", 12));

// coll.update(new BasicDBObject().append("x", 11), bdo);

//更新

//如果不使用$set直接是 age则所有的都会更新

//根据age为9条件把name:data修改为 name:sun

// BasicDBObject bdo=new BasicDBObject().append("$set", new BasicDBObject().append("name","sunshan"));

// coll.update(new BasicDBObject().append("age", 9), bdo);

//更新

//根据name为data条件把age:批量修改为 age:age

// BasicDBObject bdo=new BasicDBObject().append("$set", new BasicDBObject().append("age","age"));

// coll.update(new BasicDBObject().append("name","data"), bdo,false, true);

//查询age=1

// print("find:"+coll.find(new BasicDBObject("age", 1)).toArray());

//查询age<=1

// print("find:"+coll.find(new BasicDBObject("age", new BasicDBObject("$lte", 1))).toArray());

//查询age>=1

// print("fint:"+coll.find(new BasicDBObject("age", new BasicDBObject("$gte", 1))).toArray());

//查询age!=1

// print("fint:"+coll.find(new BasicDBObject("age", new BasicDBObject("$ne", 1))).toArray());

//查询age=1,2,3

// print("fint:"+coll.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN,new int[]{1,2,3}))).toArray());

//查询age!=1,2,3

// print("find:"+coll.find(new BasicDBObject("age",new BasicDBObject(QueryOperators.NIN,new int[]{1,2,3}))).toArray());

// print("find:"+coll.find(new BasicDBObject("age",new BasicDBObject(QueryOperators.EXISTS,true))).toArray());

//查询age属性

// print("find:"+coll.find(null,new BasicDBObject("age",true)).toArray());

// List<DBObject> list=coll.find().toArray();

// for(Object obj:list){

// System.out.println(obj);

//}

//true查询出来存在的/false查询出来不存在的

//print(""+coll.find(new BasicDBObject("y",new BasicDBObject(QueryOperators.EXISTS,false))).toArray());

// DBObject dbc=new BasicDBObject();

// dbc.put("name", 1111);

// List<DBObject> list=new ArrayList<DBObject>();

// list.add(dbc);

// System.out.println(coll.insert(list).getN());

////查询部分数据块

// DBCursor cursor=coll.find().skip(1);

// while(cursor.hasNext()){

// System.out.println(cursor.next());

//}

// DBCursor cur=coll.find();//DBCursor cur=coll.find().limit(2);

// while(cur.hasNext()){

// System.out.println(cur.next());

//}

//System.out.println(cur.getCursorId()+""+cur.count()+""+JSON.serialize(cur));

//条件查询

BasicDBObject doc5=new BasicDBObject();

doc5.put("$gt", 1);

doc5.put("$lt", 3);

print("find 21<y<23:"+coll.find(new BasicDBObject("y", doc5)).toArray());

// BasicDBObject doc5=new BasicDBObject();

// doc5.put("$gt", 1);

// doc5.put("$lt", 3);

// BasicDBObject doc6=new BasicDBObject();

// doc6.put("x", doc5);

// System.out.println(coll.find(doc6));

} catch(Exception e){

e.printStackTrace();

}

}

}

1

java怎么连接mangodb需要哪些步骤

开发环境:

System:Win7

IDE:eclipse

Database:mongoDB

开发依赖库:

JavaEE5、mongo-2.5.3.jar、junit.jar、org.hamcrest.core_1.1.0.v20090501071000.jar

一、准备工作

1、下载Mongodb对java支持jar包

jar包下载地址:

mongoDB对Java的相关支持、技术:http://www.mongodb.org/display/DOCS/Java+Language+Center

驱动源码下载:https://download.github.com/mongodb-mongo-java-driver-r2.6.1-7-g6037357.zip

在线查看源码:https://github.com/mongodb/mongo-java-driver

2、下面建立一个JavaProject工程,导入下载下来的驱动包。即可在Java中使用mongoDB,目录如下:

二、Java操作MongoDB示例

在本示例之前你需要启动mongod.exe的服务,启动后,下面的程序才能顺利执行;

1、建立simpleTest.java,完成简单的mongoDB数据库操作

Mongomongo=newMongo();

这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。

DBdb=mongo.getDB(“test”);

这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。mongoDB可以在没有创建这个数据库的情况下,完成数据的添加操作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。

得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。

DBCollectionusers=db.getCollection("users");

这样就获得了一个DBCollection,它相当于我们数据库的“表”。

查询所有数据:

DBCursorcur=users.find();

while(cur.hasNext()){

System.out.println(cur.next());

}

完整源码:

packagecom.mongodb;

importjava.net.UnknownHostException;

importcom.mongodb.util.JSON;

publicclasssimpleTest{

publicstaticvoidmain(String[]args)throwsUnknownHostException,MongoException{

Mongomg=newMongo();

//查询所有的Database

for(Stringname:mg.getDatabaseNames()){

System.out.println("dbName:"+name);

}

DBdb=mg.getDB("test");

//查询所有的聚集集合

for(Stringname:db.getCollectionNames()){

System.out.println("collectionName:"+name);

}

DBCollectionusers=db.getCollection("users");

//查询所有的数据

DBCursorcur=users.find();

while(cur.hasNext()){

System.out.println("while="+cur.next());

}

System.out.println("count="+cur.count());

System.out.println("CursorId="+cur.getCursorId());

System.out.println("cur="+JSON.serialize(cur));

}

}

2、完成CRUD操作,首先建立一个curdTset.java,基本测试代码如下:

packagecom.mongodb;

importjava.net.UnknownHostException;

importjava.util.ArrayList;

importjava.util.List;

importorg.bson.types.ObjectId;

importorg.junit.After;

importorg.junit.Before;

importorg.junit.Test;

importcom.mongodb.util.JSON;

publicclasscurdTset{

privateMongomg=null;

privateDBdb;

privateDBCollectionusers;//连接的mongodb数据库

@Before

publicvoidinit(){

System.out.println("TestBefore...");

try{

mg=newMongo();

//mg=newMongo("localhost",27017);

}catch(UnknownHostExceptione){

e.printStackTrace();

}catch(MongoExceptione){

e.printStackTrace();

}catch(Exceptione){

e.printStackTrace();

}

//获取testDB;如果默认没有创建,mongodb会自动创建

db=mg.getDB("test");

//获取usersDBCollection;如果默认没有创建,mongodb会自动创建

users=db.getCollection("users");

}

@After

publicvoiddestory(){

System.out.println("TestAfter...");

if(mg!=null){

mg.close();

}

mg=null;

db=null;

users=null;

System.gc();

}

publicvoidprint(Objecto){

System.out.println(o);

}

privatevoidqueryAll(){

print("查询users的所有数据:");

//db游标

DBCursorcur=users.find();

inti=1;

while(cur.hasNext()){

print("记录"+i+":"+cur.next());

i++;

}

}

@Test

publicvoidadd(){

//先查询所有数据

queryAll();

System.out.println("===============================ADDstart=======================================");

print("ADDcount:"+users.count());

DBObjectuser=newBasicDBObject();

user.put("name","hoojo");

user.put("age",24);

user.put("sex","男");

print(users.save(user).getN());

//添加多条数据,传递Array对象

print(users.insert(user,newBasicDBObject("name","tom")).getN());

//添加List集合

Listlist=newArrayList();

list.add(user);

DBObjectuser2=newBasicDBObject("name","lucy");

user.put("age",22);

list.add(user2);

//添加List集合

print(users.insert(list).getN());

//查询下数据,看看是否添加成功

print("count="+users.count());

System.out.println("===============================ADDend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidremove(){

queryAll();

print("删除id=4dde2b06feb038463ff09042:"+users.remove(newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042"))).getN());

print("removeage>=24:"+users.remove(newBasicDBObject("age",newBasicDBObject("$gte",24))).getN());

System.out.println("===============================REMOVEend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidmodify(){

print("修改:"+users.update(newBasicDBObject("_id",newObjectId("4dde25d06be7c53ffbd70906")),newBasicDBObject("age",99)).getN());

print("修改:"+users.update(

newBasicDBObject("_id",newObjectId("4dde2b06feb038463ff09042")),

newBasicDBObject("age",121),

true,//如果数据库不存在,是否添加

false//多条修改

).getN());

print("修改:"+users.update(

newBasicDBObject("name","haha"),

newBasicDBObject("name","dingding"),

true,//如果数据库不存在,是否添加

false//false只修改第一条,true如果有多条就不修改

).getN());

//当数据库不存在就不修改、不添加数据,当多条数据就不修改

//print("修改多条:"+coll.updateMulti(newBasicDBObject("_id",newObjectId("4dde23616be7c19df07db42c")),newBasicDBObject("name","199")));

System.out.println("===============================EDITend=======================================");

//查询所有数据

queryAll();

}

@Test

publicvoidtestOthers(){

//查询所有数据

queryAll();

DBObjectuser=newBasicDBObject();

user.put("name","hoojo");

user.put("age",24);

//JSON对象转换

print("serialize:"+JSON.serialize(user));

//反序列化

print("parse:"+JSON.parse("{"name":"hoojo","age":24}"));

print("判断tempCollection是否存在:"+db.collectionExists("users"));

//如果不存在就创建

if(!db.collectionExists("users")){

DBObjectoptions=newBasicDBObject();

options.put("size",20);

options.put("capped",20);

options.put("max",20);

print(db.createCollection("account",options));

}

//设置db为只读

db.setReadOnly(true);

//只读不能写入数据

db.getCollection("test").save(user);

}

}

如何用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对象,如下代码所示:

BasicDBObjectBuilderdocumentBuilder=BasicDBObjectBuilder.start()

.add("database","mkyongDB")

.add("table","hosting");

BasicDBObjectBuilderdocumentBuilderDetail=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("dummyColl");

//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连接mongodb数据库和用java怎么连接一个不带账号密码的mongodb数据库的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

循证医学数据库,什么叫循证医学还有数据库!电脑主机排行榜前十名,电脑台式机主机排行榜前十名有哪些品牌