mongodb安装、启动及java操作

最近项目中用到MongoDB 简单的研究了一下 ,还是很简单的,mongoDB是nosql中的佼佼者,被广泛应用的一种非关系型的数据库。

1,mongodb的下载安装,csdn中随便搜索mongodb的资源,一堆,没有的可以加群255453635 加群备注CSDN下载mongodb的资源和java中使用mongodb的驱动程序以及mongodb实战等pdf书籍。

2,解压mongodb.zip到任意的目录下,例如d:/mongodb

3, 在bin的同级目录新建data目录,在data下新建db目录

4,打开cmd 进入bin目录

5,输入 mongod.exe –dbpath:\mongodb\data\db 如图则证明mongodb安装启动成功。

这里写图片描述

当然不排除有一些小伙伴运气不好出现如下的错误:

这里写图片描述

这个错误比较常见,是因为每次使用mongodb后的不正常关闭引起的,解决也很简单 输入命令 mongod.exe –auth –dbpath:\mongodb\data\db –repair 后再次 输入mongod.exe –dbpath:\mongodb\data\db 就可以正常启动了,至此 mongodb启动安装完成。

mongodb的常用操作:

下面可以使用几个mongodb的常见命令来体验一下mongodb。

mongodb和sql是不同的 ,但是还是有一些相似性。
1,show databases show dbs 这两个命令都是显示所有数据库

2,mongodb中使用某一个数据库的话和sql一样 use test 代表切换到数据库test中,但是不同的是test如果不存在则会新建数据库test,这也是mongodb新建数据库的方式。

3,mongodb中没有表的概念,代替的是集合,类似于sql中的显示所有表,mongo中是显示所有集合,show collections

4,新建user表并插入数据{“name”:”wpz”,”password”:”123”} mongodb并没有在专门的建表语句,这是因为所有集合不会有固定的数据类型和关系,所以不需要单独的创建 db.user.save({“name”:”wpz”,”password”:”123”} );
这个命令就指定了新建user表,并保存{“name”:”wpz”,”password”:”123”} 对象对表中。

5,查看数据 db.user.find();这句话指明查询user中的所有信息。下一篇微博将会详细说明mongodb的语法,这里不再赘述。

二:mongodb在java中的使用。

mongodb要想在java中正常的使用需要满足两个条件即可 1,有可用的mongodb服务,本地或者远程都可以 2,代码中引入mongodb对于java的驱动包 mongo-java-driver-2.11.3.jar 没有的同学而且不想花分的也可以加群255453635 下载。

可以先使用下面mongodb的工具类来体验一下mongodb的java操作。

package www.cslc.eureka.util;

import java.net.UnknownHostException;
import java.sql.Date;
import java.util.List;

import org.junit.Test;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

public class MongoManager {
    private final static ThreadLocal<Mongo> mongos = new ThreadLocal<Mongo>();  

    public static DB getdb(){  
        return getMongos().getDB("eureka");  
    }  

    public static Mongo getMongos() {  
        Mongo mongo = mongos.get();  
        if (mongo == null) {  
            try {  
                mongo = new Mongo("127.0.0.1",27017);  
                mongos.set(mongo);  
            } catch (UnknownHostException e) {  
                e.printStackTrace();  
            } catch (MongoException e) {  
                e.printStackTrace();  
            }  
        }  
        return mongo;  
    }  

    public static void close(){  
        Mongo mongo = mongos.get();  
        if(mongo!=null){  
            mongo.close();  
            mongos.remove();  
        }  
    }  


    /** 
     * 获取集合(表) 
     *  
     * @param collection 
     */  
    public static DBCollection getCollection(String collection) {  

        return getdb().getCollection(collection);  
    }  
    /**
     * 插入
     * @param collection
     * @param o
     */
    public static void insert(String collection, DBObject o) {  

        getCollection(collection).insert(o);  
    }  
    /**
     * 批量插入
     * @param collection
     * @param list
     */
    public void insertBatch(String collection, List<DBObject> list) {  

        if (list == null || list.isEmpty()) {  
            return;  
        }  
        getCollection(collection).insert(list);  

    }  
    /** 
     * 删除 
     *  
     * @param collection 
     * @param q 
     *            查询条件 
     */  
    public static void delete(String collection, DBObject q) {  

        getCollection(collection).remove(q);  
    }  

    /** 
     * 批量删除 
     *  
     * @param collection 
     * @param list 
     *            删除条件列表 
     */  
    public static void deleteBatch(String collection, List<DBObject> list) {  

        if (list == null || list.isEmpty()) {  
            return;  
        }  

        for (int i = 0; i < list.size(); i++) {  
            getCollection(collection).remove(list.get(i));  
        }  
    }  


    /** 
     * 更新 
     *  
     * @param collection 
     * @param q 
     *            查询条件 
     * @param setFields 
     *            更新对象 
     */  
    public static void update(String collection, DBObject q, DBObject setFields) {  

        getCollection(collection).update(q,new BasicDBObject("$set",setFields));  
    }  

    /** 
     * 查找集合所有对象 
     *  
     * @param collection 
     */  
    public static List<DBObject> findAll(String collection) {  

        return getCollection(collection).find().toArray();  
    }  

    /** 
     * 按顺序查找集合所有对象 
     *  
     * @param collection 
     *            数据集 
     * @param orderBy 
     *            排序 
     */  
    public static List<DBObject> findAll(String collection, DBObject orderBy) {  

        return getCollection(collection).find().sort(orderBy)  
                .toArray();  
    }  

    /** 
     * 查找(返回一个对象) 
     *  
     * @param collection 
     * @param q 
     *            查询条件 
     */  
    public static DBObject findOne(String collection, DBObject q) {  

        return getCollection(collection).findOne(q);  
    }  

    /** 
     * 查找(返回一个对象) 
     *  
     * @param collection 
     * @param q 
     *            查询条件 
     * @param fileds 
     *            返回字段 
     */  
    public static DBObject findOne(String collection, DBObject q, DBObject fileds) {  

        return getCollection(collection).findOne(q, fileds);  
    }  



    /** 
     * 分页查找集合对象,返回特定字段 
     *  
     * @param collection 
     * @param q 
     *            查询条件 
     * @param fileds 
     *            返回字段 
     * @pageNo 第n页 
     * @perPageCount 每页记录数 
     */  
    public static List<DBObject> findLess(String collection, DBObject q, DBObject fileds, int pageNo,  
            int perPageCount) {  

        return getCollection(collection).find(q, fileds)  
                .skip((pageNo - 1) * perPageCount).limit(perPageCount)  
                .toArray();  
    }  
}

这只是一个简单的mongodb工具类,还有很多的不足,只是读者可以先体验一下mongodb的操作,之后会详细讨论。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专注网赚的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值