如何用SpringBoot结合MyBatisPlus优雅地操作MongoDB,实现MongoPlus长尾功能?

2026-04-12 16:432阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1155个文字,预计阅读时间需要5分钟。

如何用SpringBoot结合MyBatisPlus优雅地操作MongoDB,实现MongoPlus长尾功能?

使用MyBatisPlus的方式,优雅地操作MongoDB+MongoPlus是一个新框架,采用MyBatisPlus风格操作MongoDB,可以说,用MP就会用这个框架,和MP一样,只需继承即可快速构建CRUD操作+Gitee地址:http://t.cn/EF2A2

使用MyBatisPlus的方式,优雅的操作MongoDB

MongoPlus是一个新框架,使用MyBatisPlus的方式操作MongoDB,可以说,会用MP就会用这个框架,和mp一样,只需继承即可快速构建CRUD操作

gitee地址:gitee.com/anwena/mongo-plus/ 官网地址:www.mongoplus.cn/

接下来让我们看该如何使用它快速的进行CRUD操作

首先!你要有一个SpringBoot项目!并且使用在配置文件中配置MongoPlus

这是我的XML文件 ↓↓↓↓↓↓↓

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="maven.apache.org/POM/4.0.0" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="maven.apache.org/POM/4.0.0 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.6.13</version> <relativePath/> </parent> <groupId>com.mongoplus.bolg</groupId> <artifactId>mongo-plus-bolg</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.gitee.anwena</groupId> <artifactId>mongo-plus-boot-starter</artifactId> <!-- 使用最新版 --> <version>2.0.7.3</version> </dependency> </dependencies> </project>

yml配置文件 ↓↓↓↓↓↓↓

mongo-plus: data: mongodb: host: 127.0.0.1 port: 27017 database: blog #账号密码没有的话就不用写 #username: #password: connectTimeoutMS: 50000 waitQueueTimeoutMS: 50000 log: true

然后!你要有一个实体类!

@Data @AllArgsConstructor @NoArgsConstructor public class User { //使用ID注解,标识这是_id字段,执行type为ASSIGN_ID,使用雪花算法生成id @ID(type = IdTypeEnum.ASSIGN_ID) private String id; private String userName; private Integer userStatus; private Integer age; private Role role; }

之后!你要有你的Service!并且将Service继承Iservice,实现类则继承ServiceImpl

Service接口 ↓↓↓↓↓↓↓

public interface UserService extends IService<User> { }

ServiceImpl实现类 ↓↓↓↓↓↓↓

@Service public class UserServiceImpl extends ServiceImpl<User> implements UserService { }

到这里就已经配置完了!多么简单就配置完了

当然,提供了一个类:MongoPlusMapMapper,就是为了Mongo集合结构比较复杂时使用的,会返回一个map结构,直接注入即可使用

接下来!开始测试~~~

首先编写一个测试类,进行save测试!!! ↓↓↓↓↓↓↓

@SpringBootTest public class BlogTest { //注入我的service @Resource private UserService userService; @Test public void insertTest(){ //创建user对象 User user = new User(); user.setUserName("张三"); user.setUserStatus(1); user.setAge(18); Role role = new Role(); role.setRoleName("超级管理员"); role.setRoleIntroduce("拥有最高权限"); user.setRole(role); //直接使用继承IService提供的save方法,和mp一样! Boolean save = userService.save(user); System.out.println(save?"添加成功":"添加失败"); } }

测试代码写完了,执行!

添加成功,完全没问题!因为我在配置文件中配置了log:true,打印了sql日志和返回结果!

添加测试完了,接下来我们在进行一个查询操作!来验证我们刚刚添加的用户有没有添加到数据库里,走起~~

进行查询,还是使用IService提供的方法 ↓↓↓↓↓↓↓

@Test public void findTest(){ List<User> userList = userService.list(); userList.forEach(System.out::println); }

好!代码写完了,执行!

完美,成功验证我们刚刚添加的数据,id也是雪花算法类型,并且成功的映射到了我们的实体类中

是不是非常简单就实现了CRUD的操作,可以一个MP打遍天下了!

当然,MyBatisPlus的链式查询是一个特点,MongoPlus也有!接下来我们来写一个链式查询的示例

我已经提前加了四条数据,用来做查询:

好!开始进行lambda链式查询!我们要查询用户状态为1的,并且年龄大于20岁的

@Test public void lambdaTest(){ List<User> userList = userService.lambdaQuery().eq(User::getUserStatus, 1).gt(User::getAge, 20).list(); userList.forEach(System.out::println); }

查看执行结果!

非常完美!超级方便的链式调用,我会MyBatisPlus之后,就自动学会了MongoDB了?

如何用SpringBoot结合MyBatisPlus优雅地操作MongoDB,实现MongoPlus长尾功能?

妈妈再也不用担心我学习MongoDB了

标签:方式

本文共计1155个文字,预计阅读时间需要5分钟。

如何用SpringBoot结合MyBatisPlus优雅地操作MongoDB,实现MongoPlus长尾功能?

使用MyBatisPlus的方式,优雅地操作MongoDB+MongoPlus是一个新框架,采用MyBatisPlus风格操作MongoDB,可以说,用MP就会用这个框架,和MP一样,只需继承即可快速构建CRUD操作+Gitee地址:http://t.cn/EF2A2

使用MyBatisPlus的方式,优雅的操作MongoDB

MongoPlus是一个新框架,使用MyBatisPlus的方式操作MongoDB,可以说,会用MP就会用这个框架,和mp一样,只需继承即可快速构建CRUD操作

gitee地址:gitee.com/anwena/mongo-plus/ 官网地址:www.mongoplus.cn/

接下来让我们看该如何使用它快速的进行CRUD操作

首先!你要有一个SpringBoot项目!并且使用在配置文件中配置MongoPlus

这是我的XML文件 ↓↓↓↓↓↓↓

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="maven.apache.org/POM/4.0.0" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="maven.apache.org/POM/4.0.0 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.6.13</version> <relativePath/> </parent> <groupId>com.mongoplus.bolg</groupId> <artifactId>mongo-plus-bolg</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.gitee.anwena</groupId> <artifactId>mongo-plus-boot-starter</artifactId> <!-- 使用最新版 --> <version>2.0.7.3</version> </dependency> </dependencies> </project>

yml配置文件 ↓↓↓↓↓↓↓

mongo-plus: data: mongodb: host: 127.0.0.1 port: 27017 database: blog #账号密码没有的话就不用写 #username: #password: connectTimeoutMS: 50000 waitQueueTimeoutMS: 50000 log: true

然后!你要有一个实体类!

@Data @AllArgsConstructor @NoArgsConstructor public class User { //使用ID注解,标识这是_id字段,执行type为ASSIGN_ID,使用雪花算法生成id @ID(type = IdTypeEnum.ASSIGN_ID) private String id; private String userName; private Integer userStatus; private Integer age; private Role role; }

之后!你要有你的Service!并且将Service继承Iservice,实现类则继承ServiceImpl

Service接口 ↓↓↓↓↓↓↓

public interface UserService extends IService<User> { }

ServiceImpl实现类 ↓↓↓↓↓↓↓

@Service public class UserServiceImpl extends ServiceImpl<User> implements UserService { }

到这里就已经配置完了!多么简单就配置完了

当然,提供了一个类:MongoPlusMapMapper,就是为了Mongo集合结构比较复杂时使用的,会返回一个map结构,直接注入即可使用

接下来!开始测试~~~

首先编写一个测试类,进行save测试!!! ↓↓↓↓↓↓↓

@SpringBootTest public class BlogTest { //注入我的service @Resource private UserService userService; @Test public void insertTest(){ //创建user对象 User user = new User(); user.setUserName("张三"); user.setUserStatus(1); user.setAge(18); Role role = new Role(); role.setRoleName("超级管理员"); role.setRoleIntroduce("拥有最高权限"); user.setRole(role); //直接使用继承IService提供的save方法,和mp一样! Boolean save = userService.save(user); System.out.println(save?"添加成功":"添加失败"); } }

测试代码写完了,执行!

添加成功,完全没问题!因为我在配置文件中配置了log:true,打印了sql日志和返回结果!

添加测试完了,接下来我们在进行一个查询操作!来验证我们刚刚添加的用户有没有添加到数据库里,走起~~

进行查询,还是使用IService提供的方法 ↓↓↓↓↓↓↓

@Test public void findTest(){ List<User> userList = userService.list(); userList.forEach(System.out::println); }

好!代码写完了,执行!

完美,成功验证我们刚刚添加的数据,id也是雪花算法类型,并且成功的映射到了我们的实体类中

是不是非常简单就实现了CRUD的操作,可以一个MP打遍天下了!

当然,MyBatisPlus的链式查询是一个特点,MongoPlus也有!接下来我们来写一个链式查询的示例

我已经提前加了四条数据,用来做查询:

好!开始进行lambda链式查询!我们要查询用户状态为1的,并且年龄大于20岁的

@Test public void lambdaTest(){ List<User> userList = userService.lambdaQuery().eq(User::getUserStatus, 1).gt(User::getAge, 20).list(); userList.forEach(System.out::println); }

查看执行结果!

非常完美!超级方便的链式调用,我会MyBatisPlus之后,就自动学会了MongoDB了?

如何用SpringBoot结合MyBatisPlus优雅地操作MongoDB,实现MongoPlus长尾功能?

妈妈再也不用担心我学习MongoDB了

标签:方式