帮我用Java语言 在springboot框架下 给controller、service、mapper各写一个通用的适用于增删改查的代码
时间: 2024-05-03 12:20:13 浏览: 120
好的,我来解答你的问题。
针对你的需求,对于 SpringBoot 框架下的 Controller、Service、Mapper 实现增删改查通用功能,我们可以使用 MyBatis Plus 的基类以及代码生成器来完成。
首先,引入 MyBatis Plus 的依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
```
在 MyBatis Plus 中提供了一个 `BaseMapper` 接口,我们可以自定义一个 `BaseMapper` 实现增删改查通用功能。代码如下:
```java
public interface MyBaseMapper<T> extends BaseMapper<T> {
default List<T> selectAll() {
return selectList(null);
}
}
```
接着,我们可以通过 MyBatis Plus 的代码生成器来生成对应的 Mapper、Entity 类和 Service。需要配置以下信息以便生成对应模板:
```java
// 数据源配置
mpGenerator.setDataSource(dataSourceConfig);
// swagger2配置
mpGenerator.setSwagger2(true);
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(outputDir);
globalConfig.setAuthor(author);
globalConfig.setBaseResultMap(true);
globalConfig.setBaseColumnList(true);
globalConfig.setFileOverride(true);
mpGenerator.setGlobalConfig(globalConfig);
// 策略配置
GeneratorStrategyConfig strategy = new GeneratorStrategyConfig();
strategy.setInclude(tableNames);
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(false);
strategy.setEntityBuilderModel(true);
strategy.setChainModel(true);
strategy.setSuperMapperClass(MyBaseMapper.class); // 设置自定义Mapper类
mpGenerator.setStrategy(strategy);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent(parentPackage);
mpGenerator.setPackageInfo(packageConfig);
mpGenerator.execute();
```
生成后的具体方法可以参考 MyBatis Plus 的 API 文档,这里就不展开了。在 Controller、Service 层中,直接调用 `BaseMapper` 提供的方法即可。
以上就是利用 MyBatis Plus 和代码生成器实现 SpringBoot 框架下 Controller、Service、Mapper 的增删改查通用功能的方法。
阅读全文