首页 > 编程知识 正文

java连接mongodb集群,java mongodb

时间:2023-05-04 20:24:29 阅读:128952 作者:4092

MongoDB构建和JAVA工具类封装

MongoDB构建和JAVA工具类封装

MongoDB概述

基本语法

Mongo服务器构建

下载安装软件包

环境变量的配置

Mongo的基本构成

蒙哥起飞

封装JVA工具类

MongoDB概述

MongoDB旨在为web APP应用程序提供可扩展、高性能的数据存储解决方案。 MongoDB将数据存储为单个文档,数据结构由一对键值=value组成。 MongoDB文档类似于JSON对象。 字段值可以包含其他文档、数组和文档数组。

基本语法

没有提到基本的预分发和使用。 请参阅面向初学者的mongo教程。 手册中介绍了详细内容。 如果不是为了理解mongo,基本开发是足够的。

Mongo服务器构建

下载安装软件包

笔者使用的是旧版本的mac pro。 建设工作踩了无数个洞,在这里整理使用。 虽然很多博客都说采用了curl或brew安装,但笔者的电脑系统brew安装xcode升级失败,curl下载非常慢,只能采用离线安装。 脱机安装很简单。 直接前往网站mac版本的下载地址,下载相应的安装包,解压缩配置环境变量即可。

我下载的版本是3.6.2,解压缩后配置环境变量就可以了。

环境变量的配置

编辑~/.bash_profile文件并添加环境变量

导出mongo _ path=/users/mantan/applications/mongod B- OS x-x86 _ 64-3.6.2

导出路径=$ path : $ mongo _ path/bin

使用source命令可以启用环境变量

source ~/.bash_profile

上述配置完成后,环境变量配置成功,可以使用echo检查下哈。

Mongo的基本构成

在mongo路由下建设以下文件data、etc、log,分别存储data数据、配置文件和日志信息。

然后,在data目录下创建数据库文件夹,并存储mongo数据。

然后,在etc目录下创建mongod.conf文件。 内容如下。

dbpath=/users/mantan/applications/mongodb- OS x-x86 _ 64-3.6.2/data/db

log path=/users/mantan/applications/mongodb- OS x-x86 _ 64-3.6.2//logs/MongoDB/mongod.log

logappend=true

bind_ip=127.0.0.1

Journal=真

端口=27017

# fork允许后端子进程启动,终端可以自行关闭

fork=true

#安全权限首先以非授权模式启动Mongod,打开用户db.adduser(root )、() pwd )、auth=true,然后打开db.auth (root )、(pwd )、

auth=true

然后,在日志目录下构建mongodb/mongod.log并记录日志

这样,部署工作完成了,马上起飞,你很兴奋吗?

蒙哥起飞

使用命令启动Mongo服务

mongod-- config/users/mantan/applications/mongod B- OS x-x86 _ 64-3.6.2/etc/mongod.conf

已启动:

进入shell客户端操作

运行mongo命令即可访问

笔者设定了auth用户的登录权限

# # #管理员用户

db .创建用户(用户db: (根)、pwd: (根)、roles: (用户管理数据库)、db : (ADM mase ) )。

###一般数据库用户

db.create user (user : ' your user2',pwd: 'yourpassword2',roles : [ { role : ' read write ',db3360']

以下是我测试构建的collection。 特别适用于数据字段的动态转储

封装JVA工具类

封装Mongo操作的Java抽象类大致满足日常开发需要,DAO层可以通过集成这个基类来利用功能。 贡献,让大家参加

考,不当之处,评论处补充:

package yonyou.esn.openapi.dao.mongo;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.mongodb.core.MongoTemplate;

import org.springframework.data.mongodb.core.query.Criteria;

import org.springframework.data.mongodb.core.query.Query;

import org.springframework.data.mongodb.core.query.Update;

import yonyou.esn.openapi.util.Page;

import java.lang.reflect.ParameterizedType;

import java.lang.reflect.Type;

import java.util.List;

public class MongoBaseDao {

private static final int DEFAULT_SKIP = 0;

private static final int DEFAULT_LIMIT = 200;

/**

* spring mongodb 集成操作类

*/

@Autowired

protected MongoTemplate mongoTemplate;

protected String collection;

/**

* 通过条件查询实体(集合)

*

*@param query

*/

public List find(Query query) {

return mongoTemplate.find(query, this.getEntityClass());

}

public List find(Query query, String collectionName) {

return mongoTemplate.find(query, this.getEntityClass(), collectionName);

}

/**

* 通过一定的条件查询一个实体

*

*@param query

*@return

*/

public T findOne(Query query) {

return mongoTemplate.findOne(query, this.getEntityClass());

}

public T findOne(Query query, String collectionName) {

return mongoTemplate.findOne(query, this.getEntityClass(), collectionName);

}

/**

* 通过条件查询更新数据

*

*@param query

*@param update

*@return

*/

public void update(Query query, Update update) {

mongoTemplate.findAndModify(query, update, this.getEntityClass());

}

public void update(Query query, Update update, String collectionName) {

mongoTemplate.findAndModify(query, update, this.getEntityClass(), collectionName);

}

public void removeById(String id, String collectionName){

Query query = new Query();

query.addCriteria(Criteria.where("_id").is(id));

mongoTemplate.remove(query, collectionName);

}

/**

* 保存一个对象到mongodb

*

*@param entity

*@return

*/

public T save(T entity) {

mongoTemplate.insert(entity);

return entity;

}

public T save(T entity, String collectionName) {

mongoTemplate.insert(entity, collectionName);

return entity;

}

/**

* 通过ID获取记录

*

*@param id

*@return

*/

public T findById(String id) {

return mongoTemplate.findById(id, this.getEntityClass());

}

/**

* 通过ID获取记录,并且指定了集合名(表的意思)

*

*@param id

*@param collectionName

* 集合名

*@return

*/

public T findById(String id, String collectionName) {

return mongoTemplate.findById(id, this.getEntityClass(), collectionName);

}

/**

* 分页查询

*@param page

*@param query

*@return

*/

public Page findPage(Page page, Query query){

long count = this.count(query);

page.setTotal(count);

int pageNumber = page.getPageNumber();

int pageSize = page.getPageSize();

query.skip((pageNumber - 1) * pageSize).limit(pageSize);

List rows = this.find(query);

page.setRows(rows);

return page;

}

public Page findPage(Page page, Query query, String collectionName){

long count = this.count(query, collectionName);

page.setTotal(count);

int pageNumber = page.getPageNumber();

int pageSize = page.getPageSize();

query.skip((pageNumber - 1) * pageSize).limit(pageSize);

List rows = this.find(query, collectionName);

page.setRows(rows);

return page;

}

/**

* 求数据总和

*@param query

*@return

*/

public long count(Query query){

return mongoTemplate.count(query, this.getEntityClass());

}

public long count(Query query, String collectionName){

return mongoTemplate.count(query, this.getEntityClass(), collectionName);

}

/**

* 获取需要操作的实体类class

*

*@return

*/

private Class getEntityClass(){

Type superclass = this.getClass().getGenericSuperclass();

Type[] actualTypeArguments = ((ParameterizedType)superclass).getActualTypeArguments();

return (Class) actualTypeArguments[0];

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。