在之前的学习中已经了解了Mybatis的使用,但在使用的过程中可以看到重复的地方十分的多,尤其是在写controller、service、dao层的时候,里面的代码十分的重复繁琐。
为了解决这个问题,可以通过使用Mybatis-plus来减少重复代码的工作量。
Mybatis-plus的配置
更专业的可以参考官方文档https://baomidou.com/guide
1:导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
2:将application.properties下的两个配置修改
3:在utils下添加工具包GenerateCode
package com.mybatis.mybatis.utils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import java.util.Collections;
public class GenerateCode {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC", "数据库账号", "数据库密码")
.globalConfig(builder -> {
builder.author("你的名字")
.enableSwagger()
.fileOverride()
.outputDir("C:\\Users\\Administrator\\Desktop\\test");
})
.packageConfig(builder -> {
builder.parent("com.mybatis.mybatis")
.moduleName("student")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "C:\\Users\\Administrator\\Desktop\\test"));
})
.strategyConfig(builder -> {
builder.addInclude("student")
.addTablePrefix("t_", "c_");
})
.execute();
}
}
作为示例,在数据库中建立了一个student表。
(指定的输出目录别太乱,不然不好找生成的代码)
4:运行上述的工具类
就会在指定的输出目录生成我们所需要的代码,包括了xml、mapper、controller、service、entity。
一 一的找到,将其粘贴进我们需要放置的位置。
其中的红框的都是自动生成的代码。
之后我们可以在controller层写少量的代码
public class StudentController {
@Autowired
IStudentService iStudentService;
@GetMapping("getallstudent")
public Result getStudent(){
return Result.ok(iStudentService.list());
}
@PostMapping("addStudent")
public Result addStudent(@RequestBody Student student){
return Result.ok(iStudentService.save(student));
}
@PostMapping("updateStudent")
public Result updateStudent(@RequestBody Student student){
return Result.ok(iStudentService.updateById(student));
}
@PostMapping("deleteStudentById")
public Result deleteSudent(int id){
return Result.ok(iStudentService.removeById(id));
}
}
以上是基本的增删改查的代码。更多的可以自行了解。
|