Java连接mongodb数据库

  • 数据库设计
  • 利用vnc链接到曙光服务器,并开启mongodb数据库服务

输入:cd ~

输入:mkdir –p ./data/db

输入:mongod –dbpath=./data/db

不要关闭终端,再打开另一个终端

输入:mongo

mongodb shell界面创建数据库

输入:use kaili

创建集合

输入:db.createCollection(“student”)

插入数据5条不同的数据

输入:db.student.insert({"name":"xiaoming","cla":"16","age":19})

输入:db.student.insert({"name":"xiaoming2","cla":"16","age":20})

输入:db.student.insert({"name":"xiaoming3","cla":"14","age":24})

输入:db.student.insert({"name":"xiaoming4","cla":"13","age":23})

输入:db.student.insert({"name":"xiaoming5","cla":"12","age":22})

 

二、建立java工程

1、打开eclipse,并新建java工程

2、工程目录下新建lib文件夹

3、导入mongodb包,复制到lib文件夹下。并且工程引用

下载地址:https://github.com/sparkxgd/edu/archive/master.zip

4、工程目录下src目录下新建com包

5、在com下创建Test、MongoDBStudent

MongoDB.java

package com;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;

public class MongoDB {
	
	private MongoClient mongoClient;
	private MongoDatabase mongoDatabase;
	
	/**
	 * 启动
	 * @param host
	 * @param port
	 */
	public MongoDB(String host,int port,String dbname) {
		// 连接到 mongodb 服务
       try {
    	   mongoClient = new MongoClient(host,port);
		   // 连接到数据库
           mongoDatabase = mongoClient.getDatabase(dbname);
	} catch (Exception e) {
		e.printStackTrace();
	}
	}
	/**
	 * 停止
	 * @return
	 */
	public void stop() {
		if(mongoClient!=null) {
			mongoClient.close();
		}
	}
	
	public MongoDatabase getDB() {
		return mongoDatabase;
	}

}

Student .java

package com;

import org.bson.Document;

import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.UpdateResult;

public class Student {
	private MongoCollection<Document> collection;
	private String tableName ="student";
	
	public Student(MongoDB mongo) {
		this.collection = mongo.getDB().getCollection(tableName);
	}
	   //插入文档  
    /** 
    * 1. 创建文档 org.bson.Document 参数为key-value的格式 
    * 2. 创建文档集合List<Document> 
    * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document) 
    * */
	public boolean add(Document document) {
		collection.insertOne(document);
		return true;
	}
	/**
	 * 删除
	 * @param fieldName
	 * @param value
	 * @return
	 */
	public boolean delOne(String fieldName, Object value) {
		collection.deleteOne(Filters.eq(fieldName, value));
		return true;
	}
	//检索所有文档  
    /** 
    * 1. 获取迭代器FindIterable<Document> 
    * 2. 获取游标MongoCursor<Document> 
    * 3. 通过游标遍历检索出的文档集合 
    * */  
	public FindIterable<Document> find() {
		FindIterable<Document> findIterable = collection.find();
		return findIterable;
	}
	public UpdateResult update(String fieldName, Object value,String upatefieldName, Object updatevalue) {
		//更新文档   将文档中likes=100的文档修改为likes=200   
        UpdateResult r=collection.updateMany(Filters.eq(fieldName, 100), new Document("$set",new Document(upatefieldName,updatevalue)));  
		return r;
	}
}

Test.java

package com;

import org.bson.Document;

import com.MongoDB;
import com.Student;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCursor;

public class Test {
	public static void main(String[] args) {
		String host="192.168.26.111";//ip地址
		int port=27017 ;
		String dbname="kaili";//数据库名
		MongoDB mongo=new MongoDB(host, port, dbname);
		Student st=new Student(mongo);
		
		//查找数据
		FindIterable<Document> findIterable =st.find();
		MongoCursor<Document> mongoCursor = findIterable.iterator();  
		//遍历出来
        while(mongoCursor.hasNext()){  
           System.out.println(mongoCursor.next());  
        }  
		
	}

}

 

发布了61 篇原创文章 · 获赞 15 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览