1. 程式人生 > >MongoDB(四)——SpringBoot整合mongodb

MongoDB(四)——SpringBoot整合mongodb

程式碼下載地址:https://github.com/tazhigang/big-data-github.git

程式碼檢視地址:https://github.com/tazhigang/big-data-github/tree/master/mongodb-parent/springboot-mongodb

一、專案結構

二、pom.xml

  1. mongodb-parent------->pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ittzg.mongodb</groupId>
    <artifactId>mongodb-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
    </parent>
    <modules>
        <module>mongodb-client</module>
        <module>springboot-mongodb</module>
    </modules>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
  1. springboot-mongodb---->pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>mongodb-parent</artifactId>
        <groupId>com.ittzg.mongodb</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springboot-mongodb</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
    </dependencies>
</project>

程式碼展示

  1. UserEntity.java
package com.ittzg.mongodb.entity;

import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.List;
/**
 * @email: [email protected]
 * @author: ittzg
 * @date: 2019/7/22 15:12
 */
@Document(collection="user")
public class UserEntity {
    @Id
    private ObjectId id;

    private String username;

    private String sex;

    private AddressEntity address;

    private List<LikeEntity> likes;

    @Document
    public static class AddressEntity{
        private String province;
        private String citiy;
        private String county;

        public String getProvince() {
            return province;
        }

        public void setProvince(String province) {
            this.province = province;
        }

        public String getCitiy() {
            return citiy;
        }

        public void setCitiy(String citiy) {
            this.citiy = citiy;
        }

        public String getCounty() {
            return county;
        }

        public void setCounty(String county) {
            this.county = county;
        }
    }
    @Document
    public static class LikeEntity{
        private String like;

        public String getLike() {
            return like;
        }

        public void setLike(String like) {
            this.like = like;
        }
    }

    public ObjectId getId() {
        return id;
    }

    public void setId(ObjectId id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public AddressEntity getAddress() {
        return address;
    }

    public void setAddress(AddressEntity address) {
        this.address = address;
    }

    public List<LikeEntity> getLikes() {
        return likes;
    }

    public void setLikes(List<LikeEntity> likes) {
        this.likes = likes;
    }
}
  1. UserDao.java
package com.ittzg.mongodb.dao;

import com.ittzg.mongodb.entity.UserEntity;
import org.bson.types.ObjectId;

import java.util.List;

/**
 * @email: [email protected]
 * @author: ittzg
 * @date: 2019/7/22 14:32
 */
public interface UserDao {
    // 新增或者更新資料
    boolean saveOrUpdate(UserEntity userEntity);
    // 查詢返回實體
    List<UserEntity> findByUserName(String username);
    // 刪除
    boolean deleteByUserName(String username);
}
  1. UserDaoImpl.java
package com.ittzg.mongodb.dao.impl;

import com.ittzg.mongodb.dao.UserDao;
import com.ittzg.mongodb.entity.UserEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;

import java.util.List;

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

/**
 * @email: [email protected]
 * @author: ittzg
 * @date: 2019/7/22 14:32
 */
@Component
public class UserDaoImpl implements UserDao{
    @Autowired
    private MongoOperations mongoOperations;

    @Override
    public boolean saveOrUpdate(UserEntity userEntity) {
        try {
            mongoOperations.save(userEntity);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    @Override
    public List<UserEntity> findByUserName(String username) {
        try {
            Query query = new Query(where("username").is(username));
            List<UserEntity> userEntities = mongoOperations.find(query, UserEntity.class);
            return userEntities;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    @Override
    public boolean deleteByUserName(String username) {
        try {
            Query query = new Query(where("username").is(username));
            mongoOperations.findAllAndRemove(query, UserEntity.class);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}
  1. UserController.java
package com.ittzg.mongodb.controller;

import com.ittzg.mongodb.dao.UserDao;
import com.ittzg.mongodb.entity.UserEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @email: [email protected]
 * @author: ittzg
 * @date: 2019/7/22 15:38
 */
@RestController
@RequestMapping(value = "user")
public class UserController {
    @Autowired
    private UserDao userDao;

    @RequestMapping(value = "addOrModify",method = RequestMethod.POST)
    public String addUser(@RequestBody UserEntity userEntity){
        if(userDao.saveOrUpdate(userEntity)){
            return "success";
        }
        return "failure";
    }

    @RequestMapping(value = "deleteByUserName",method = RequestMethod.DELETE)
    public String deleteByUserName(String username){
        if(userDao.deleteByUserName(username)){
            return "success";
        }
        return "failure";
    }

    @RequestMapping(value = "findByUserName",method = RequestMethod.GET)
    public List<UserEntity> findByUserName(String username){
        return userDao.findByUserName(username);
    }
}
  1. UserSwaggerConfig.java
package com.ittzg.mongodb.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @email: [email protected]
 * @author: ittzg
 * @date: 2019/7/22 13:43
 * Swagger配置
 */
@Configuration
@EnableSwagger2
public class UserSwaggerConfig  extends WebMvcConfigurerAdapter{
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ittzg.mongodb"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("mongoDB測試案例")
                .description("restApi of mongodb operation")
                .contact("ittzg")
                .version("1.0")
                .build();
    }

}
  1. MongoDBApplication.java
package com.ittzg.mongodb;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @email: [email protected]
 * @author: ittzg
 * @date: 2019/7/22 13:43
 * 由於只做演示故省略業務層
 */
@SpringBootApplication
public class MongoDBApplication {
    public static void main(String[] args) {
        SpringApplication.run(MongoDBApplication.class,args);
    }
}

四、測試swagger頁面

相關推薦

MongoDB()——SpringBoot整合mongodb

程式碼下載地址:https://github.com/tazhigang/big-data-github.git 程式碼檢視地址:

springboot 整合 mongodb實現 批量更新數據

唯一值 false dom name ng- repos pub comm isa 現需求:需要批量將1000個數據先查詢在更新到mongodb(如果查詢不到數據,則添加數據) 1:工具類BathUpdateOptions 1 import org.springfram

企業級 SpringBoot 教程 (八)springboot整合mongodb

tom with 自定義 let 企業 ice system face find 準備工作 安裝 MongoDB jdk 1.8 maven 3.0 idea 環境依賴 在pom文件引入spring-boot-starter-data-mongodb依賴: <d

springboot整合mongoDB 異常認證

1.springboot連線mongoDB 出現異常認證   異常詳情: com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='admin', so

SpringBoot 整合MongoDB的基本操作

話不多說,直接上程式碼(轉載務必說明出處  https://blog.csdn.net/LiaoHongHB/article/details/83900867): public class MongoDaoImpl<T> implements MongoDao&l

MongoDB聚合操作例項(基於SpringBoot 整合MongoDB

轉載務必說明出處:https://blog.csdn.net/LiaoHongHB/article/details/83579030        spring boot整合mongdb,其中的mongodbTemplate只有一些簡單的方法對mongod

springBoot整合MongoDB(單機)

依賴: <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb --> <dependency>

springboot 整合 mongodb

pom.xml: <!--mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifac

springboot整合mongodb簡單demo

前提當然是有mongodb應用,安裝可以參考之前寫的一篇https://blog.csdn.net/u011890101/article/details/82698773 建立springboot應用,新增依賴,這裡使用data下的mongo包 <dependency>

springboot整合MongoDB一:新增刪除操作

一. 新增 Spring  Data  MongoDB 的MongoTemplate提供了兩種儲存文件方式,分別是save和insert方法,這兩種的區別:   (1)save :我們在新增文件時,如果有一個相同_ID的文件時,會覆蓋原來的。   (2)insert:我

springboot 整合mongodb並操作簡單增刪改查

宣告: 執行環境:jdk 1.8、maven3.5.4、spingboot 2.0、mongodb、等 操作步驟: 第一步:pom檔案中新增jar包依賴(正常情況下) <!--mongodb --> <dependency>

轉載:SpringBoot非官方教程 | 第八篇:springboot整合mongodb

這篇文章主要介紹springboot如何整合mongodb。 準備工作 jdk 1.8 maven 3.0 idea 環境依賴 在pom檔案引入spring-boot-starter-data-mongodb依賴: <dependency>

SpringBoot整合MongoDB

一、mongodb簡介           MongoDB是一個基於分散式檔案儲存的資料庫。由C++語言編寫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。           MongoDB是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最

SpringBoot整合MongoDBMongoDB環境搭建

下載MongoDB 下載地址 在D盤下建立目錄 在D:\MongoDB\Data 在D:\MongoDB目錄下解壓下載好的安裝檔案 win+R開啟CMD視窗 進入到bin目錄下 (本人的是D:\MongoDB\mongodb-win32-x86_64-20

SpringBoot 整合 MongoDB 之 MongoTemplate 實現 CRUD、分頁介面

###一、前言 最近 ITAEM 團隊的一個前端女生使用了 node+MongoDB 做了一個視訊網站,效果相當不錯,這勾起了筆者塵封已久的 MongoDB 記憶,於是結合目前最為流行的後臺框架 SpringBoot,做了一個一般專案常用後臺的介面 CRUD 操

SpringBoot整合MongoDB,使用mongoTemplate實現高階查詢

一、前言 最近專案使用MongoDB作為資料主要存取的地方 又是第一次接觸MongoDB,也是踩了不少坑... 維護資料無非就是增刪改查,而裡面最複雜的就是查詢了 所以來總結一下有關MongoDB的查詢方法 當然如果你在此之前你對MongoDB一點都不瞭解的話 個

菜鳥入坑》springboot整合mongodb問題1-Decimal128和BigDecimal的轉換

1.Decimal128的瞭解由於mongodb4.3以上新加了Decimal128型別。Decimal128型別對小數給了最好的支援,而double型別對小數存在精度的問題。個人覺得Decimal128還是不錯的。但是我測試發現spring-data-mongodb 1.*

五、springboot 整合 mongodb

一、在 Linux 上開啟 mongodb 複製集的先期準備 1、開啟 複製集 所有節點的埠,供遠端訪問 /sbin/iptables -I INPUT -p tcp --dport 28001 -j ACCEPT&&/etc/init.d/iptables save

第七章:springboot整合MongoDB

本篇博文主要講述入使用springboot對MongoDB進行整合 這裡我們需要先安裝配置MongoDB。在官網下載會比較慢,(反正我是比較慢啦,不知道各位的了)所以我特意提供了一下我下載好的安裝包,以及補丁,還有一個視覺化工具。地址在下方,有需要的可以前往下載。 此

springboot整合MongoDB提供MongoTemplate實現json的增查改操作

1.儲存json資料可以字串的格式存放,也可以將json用封裝類進行接收 2.用物件接收json資料的封裝類,必須設有id屬性,不然儲存成功後MongoDB返回來id無法接收得到(注意) @controller層程式碼 //儲存資料 mongoTemplate.