• spring boot集成mysql+mongo


    1.添加依赖

    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <scope>runtime</scope>
    </dependency>
    <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>1.2.60</version>
    </dependency>
    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-mongodb</artifactId>
         <version>2.2.6.RELEASE</version>
    </dependency>
    <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
    </dependency>

    2.配置

    spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    spring.data.mongodb.database=gis
    spring.data.mongodb.uri=mongodb://localhost:27017

    3.mysql操作

    实体类

    package com.example.demo.model;
    
    import lombok.*;
    import org.hibernate.annotations.CreationTimestamp;
    
    import javax.persistence.*;
    import java.util.Date;
    
    @Entity
    @Table(name = "users")
    @Data
    @Builder
    @ToString(callSuper = true)
    @NoArgsConstructor
    @AllArgsConstructor
    public class Users {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;
        private String name;
        @Column(updatable = false)
        @CreationTimestamp
        private Date createTime;
    }
    View Code

    数据操作接口

    package com.example.demo.repository;
    
    import com.example.demo.model.Users;
    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Repository
    public interface UsersRepository extends JpaRepository<Users,Integer> {
    }
    View Code

    控制器方法

    @RequestMapping("/users/add")
    public Users usersAdd(@RequestParam String name) {
    
        Users user = Users.builder().name(name).build();
        log.info("User {}", user);
        usersRepository.save(user);
        return user;
    }

    4.mongo操作

    实体类

    package com.example.demo.model;
    
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    import lombok.*;
    import org.springframework.data.mongodb.core.mapping.Document;
    
    @Document(collection = "jn")
    @Data
    @Builder
    @ToString(callSuper = true)
    @NoArgsConstructor
    @AllArgsConstructor
    public class Mon {
    
        private String type;
        private JSONObject properties;
        private JSONObject geometry;
        private JSONArray lng;
        private JSONArray lat;
        private JSONObject max;
        private JSONObject min;
        private JSONObject basic;
    }

    控制器方法

    @Resource
    private MongoTemplate mongoTemplate;
    @RequestMapping("/mongo")
    public Result jn() {
        Query query = new Query(Criteria.where("type").is("abc").andOperator(
             Criteria.where("basic.x").lte(100).gte(1),
             Criteria.where("basic.y").lte(50).gte(1)
        ));
       List<Mon> list = mongoTemplate.find(query, Mon.class);
       if(list.size()>0){
            return Result.success(200,list);
       }else{
            return Result.failMessage(400,"error");
       }
    }

     说明:

      @Document注解是spring Data mongodb提供的一个注解,用于指定了这个模型类型所对应的集合名称,格式:

        @Document(collection = '名称')

      MongoTemplate常用方法

    mongoTemplate.findAll(Student.class): 查询Student文档的全部数据
    mongoTemplate.findById(<id>, Student.class): 查询Student文档id为id的数据
    mongoTemplate.find(query, Student.class);: 根据query内的查询条件查询
    mongoTemplate.upsert(query, update, Student.class): 修改
    mongoTemplate.remove(query, Student.class): 删除
    mongoTemplate.insert(student): 新增
  • 相关阅读:
    Java:线程的六种状态及转化
    Java:多线程概述与创建方式
    小白学Java:RandomAccessFile
    如何用IDEA开启断言
    如何通过IDEA添加serialVersionUID
    小白学Java:I/O流
    更改IDEA相对路径
    小白学Java:File类
    小白学Java:内部类
    Leetcode数组题*3
  • 原文地址:https://www.cnblogs.com/baby123/p/12627970.html
Copyright © 2020-2023  润新知