spring boot2.0集成mongodb

MongoDB在企业级项目中一般用于存储文档信息、图片资源等,MongoDB的内容完全是以 JSON字符串的形式进行存储的,所以我们在获取数据时通过简单的 反序列化就可以完成与项目内的实体类转换,不过这个过程是自动的,不需要我们手动进行反序列化处理。

1.准备下载安装Mongodb

2.构建项目

在pom.xml文件中添加mongodb的配置

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

在application.yml中添加参数配置

  data:
    mongodb:
      host: localhost
      port: 27017
#      username: root
#      password: 123456
      database: db0
      authentication-database: local
新建一个地址信息实体类MongoShopAddress

import lombok.Data;
import org.springframework.data.annotation.Id;

import java.io.Serializable;
import java.util.Date;

/**
 * 类或方法的功能描述 :mongodb 实体类
 *
 * @date: 2018-06-26 12:06
 */
@Data
public class MongoShopAddress implements Serializable {
    @Id
    private String id;

    private Integer orderId;

    private String email;

    private String firstName;

    private String lastName;

    private String postcode;

    private String fax;

    private String telephone;

    private Integer countryId;

    private Integer regionId;

    private String city;

    private String address1;

    private String address2;

    private Date createDate;

    private Integer createBy;

    private Date updateDate;

    private Integer updateBy;
}
新建一个接口服务类MongoDBShopAddressService

import com.sunvalley.demo.model.MongoShopAddress;
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 org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * 类或方法的功能描述 :使用mongodb 操作
 *
 * @author: logan.zou
 * @date: 2018-06-25 18:13
 */
@Service
public class MongoDBShopAddressService {
    @Autowired
    private MongoTemplate mongoTemplate;

    /**
     *  保存地址
     * @param mongoShopAddress
     */
    public void saveAddress(MongoShopAddress mongoShopAddress) {
        if (null == mongoShopAddress) {
            return;
        }
        mongoShopAddress.setCreateDate(new Date());
        mongoShopAddress.setUpdateDate(new Date());
        mongoTemplate.save(mongoShopAddress);
    }

    /**
     * 查询所有的
     * @return
     */
    public List<MongoShopAddress> findAll() {
        List<MongoShopAddress> list = mongoTemplate.findAll(MongoShopAddress.class);
        return list;
    }

    /**
     * 根据地址ID查询
     * @param id
     * @return
     */
    public MongoShopAddress getAddressById(String id) {
        if (null == id) {
            return null;
        }
        Query query = new Query(Criteria.where("_id").is(id));
        MongoShopAddress mongoShopAddress = mongoTemplate.findOne(query, MongoShopAddress.class);
        return mongoShopAddress;
    }


    /**
     * 根据订单ID查询
     * @param orderId
     * @return
     */
    public MongoShopAddress getAddressByOrderId(Integer orderId) {
        if (null == orderId) {
            return null;
        }
        Query query = new Query(Criteria.where("orderId").is(orderId));
        MongoShopAddress mongoShopAddress = mongoTemplate.findOne(query, MongoShopAddress.class);
        return mongoShopAddress;
    }

    /**
     * 更新地址
     * @param mongoShopAddress
     */
    public void updateAddress(MongoShopAddress mongoShopAddress) {
        if (null == mongoShopAddress) {
            return;
        }
        Query query = new Query(Criteria.where("_id").is(mongoShopAddress.getId()));
        Update update = new Update().set("telephone", mongoShopAddress.getTelephone())
                                    .set("address1", mongoShopAddress.getAddress1())
                                    .set("updateDate", new Date());
        // 更新查询返回结果集的第一条
        mongoTemplate.updateFirst(query, update, MongoShopAddress.class);
        // 更新查询返回结果集的所有
        // mongoTemplate.updateMulti(query, update, MongoShopAddress.class);
    }

    /**
     * 根据ID删除
     * @param mongoShopAddress
     */
    public void deleteAddress(MongoShopAddress mongoShopAddress) {
        if (null == mongoShopAddress) {
            return;
        }
        mongoTemplate.remove(mongoShopAddress);
    }
} 
通过MongoTemplate这个接口就可以连到Mongodb数据库了,即可对mongodb实现简单的增删改查的操作。我们可以通过mongodbAdmin就可以看到数据了。


mongodbAdmin是mondb的可视化管理工具,也可以对数据进行操作。

安装MongodbAdmin

adminMongo的GitHub地址为:adminMongo下载地址

我使用的windows版本,从git上下载下来后使用Node环境安装,执行下面这个命令

npm install -g admin-mongo

安装完后进入到adminMongo文件夹,使用下面这个命令启动adminMongo页面

npm start
然后打开浏览器输入 http://127.0.0.1:1234 即可访问到adminMongoAdmin管理页面。







猜你喜欢

转载自blog.csdn.net/zxl646801924/article/details/81002421