springboot整合MongoDB
程序员文章站
2022-07-12 23:16:02
...
思路
使用repository继承MongoRepository<TableName,IdType>
在service中同时引入MongoTemplate
项目源码
pom
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.redis</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- aop的jar -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mongodb-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<!--指定运行阶段是开发阶段,避免在使用mvn进行打包时重写dao或model-->
<phase>deploy</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- generator 工具配置文件的位置 -->
<configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<!--工具需要的依赖-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
~
重点
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>~
yml
spring:
data:
mongodb:
url: mongodb://localhost:27017~
entity
package com.redis.entity;
import lombok.Data;
import java.io.Serializable;
@Data
public class Student implements Serializable {
private Integer id;
private String number;
private String name;
private String sex;
private Integer age;
@Override
public String toString() {
return "Student{" +
"id=" + id +
", number='" + number + '\'' +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
public Student(Integer id, String number, String name, String sex, Integer age) {
this.id = id;
this.number = number;
this.name = name;
this.sex = sex;
this.age = age;
}
public Student() {
}
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number == null ? null : number.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
repository
package com.redis.dao;
import com.redis.entity.Student;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.List;
/**
* @author czy
* @date 2019/10/29 - 20:06
* @Classname StudentRepository
* @Description
*/
public interface StudentRepository extends MongoRepository<Student,String> {
List<Student> findByAge(int age);
List<Student> findByName(String Name);
}
~
Test
package com.redis;
import com.redis.dao.StudentRepository;
import com.redis.entity.Student;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
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.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Autowired
private StudentRepository studentRepository;
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void TestSave(){
Student student = new Student(0,"#######,"###","####",19);
// Integer id, String number, String name, String sex, Integer age
mongoTemplate.save(student);
System.out.println(student);
}
@Test
public void TestFindByAge(){
List<Student> list = studentRepository.findByAge(19);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).toString());
}
}
@Test
public void Test(){
Criteria criteria = Criteria.where("age").is(19);
Query query = new Query(criteria);
List<Student> list = mongoTemplate.find(query,Student.class);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).toString());
}
}
@Test
public void TestFindByName(){
List<Student> list = studentRepository.findByName("###");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).toString());
}
}
}
~
开始测试
成功
注意事项
引入包
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
整合事务以及集群
借鉴:码云
jpa方法
偷的图
拓展
高级查询
参考地址:
https://blog.csdn.net/qq_41402200/article/details/82149110
https://www.cnblogs.com/woshimrf/p/springboot-with-mongodb.html
规范化demo:
https://blog.csdn.net/zhangcongyi420/article/details/91406843
fewf
上一篇: Mybatis中的多表查询 —— 多对多
下一篇: 心形流水灯变换