自动生成代码
b站视频讲解链接:https://www.bilibili.com/video/BV1AP4y1A7K1?share_source=copy_web
添加依赖
<!-- spring-boot启动依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- spring-boot web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mybatis-plus启动依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--mybatis-plus自动生成器依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!-- 模板引擎依赖-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
在一个main方法里写代码
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import java.util.Collections;
/**
* @author 张峰
* @create 2022/2/21 20:37
*/
public class MyBatisPlus {
public static void main(String[] args) {
String url="jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2b8";
String username="root";
String password="123456";
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> {
builder.author("张峰") // 设置作者
.fileOverride() // 覆盖已生成文件
.disableOpenDir() //禁止打开输出目录
.outputDir("C:\\Users\\zhang\\Desktop\\mybatis-plus-demo\\src\\main\\java\\"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.liang") // 设置父包名
.moduleName(null) // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "C:\\Users\\zhang\\Desktop\\mybatis-plus-demo\\src\\main\\resources\\mapper\\")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.entityBuilder().enableLombok(); //启动lombok
builder.mapperBuilder().enableMapperAnnotation().build(); //启用@mapper注释
builder.controllerBuilder().enableHyphenStyle().enableRestStyle(); //启用驼峰转连字符样式
builder.addInclude("t_user") // 设置需要生成的表名
.addTablePrefix("t_"); // 设置过滤表前缀
})
.execute();
}
}
如果想直接生成增删改查接口 需要在配置文件新建一个template文件夹 新建文件controller.java.vm
package ${package.Controller};
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.liang.utils.JsonData;
import ${package.Service}.${table.serviceName};
import ${package.Entity}.${entity};
#if(${restControllerStyle})
import org.springframework.web.bind.annotation.RestController;
#else
import org.springframework.stereotype.Controller;
#end
#if(${superControllerClassPackage})
import ${superControllerClassPackage};
#end
/**
* <p>
* $!{table.comment} 前端控制器
* </p>
*
* @author ${author}
* @since ${date}
*/
@RestController
@RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end")
public class ${table.controllerName} {
@Resource
private ${table.serviceName} ${table.entityPath}Service;
/**
* 查询所有接口
* @return
*/
@GetMapping
public JsonData findAll() {
return JsonData.buildSuccess(${table.entityPath}Service.list());
}
/**
* 根据id查询数据接口
* @param id
* @return
*/
@GetMapping("/{id}")
public JsonData findOne(@PathVariable Integer id) {
return JsonData.buildSuccess(${table.entityPath}Service.getById(id));
}
/**
* 分页查询接口
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("/page")
public JsonData findPage(@RequestParam Integer pageNum,@RequestParam Integer pageSize) {
QueryWrapper<${entity}> queryWrapper = new QueryWrapper<>();
return JsonData.buildSuccess(${table.entityPath}Service.page(new Page<>(pageNum, pageSize), queryWrapper));
}
/**
* 新增和更新接口
* @param user
* @return
*/
@PostMapping
public JsonData save(@RequestBody ${entity} ${table.entityPath}) {
${table.entityPath}Service.saveOrUpdate(${table.entityPath});
return JsonData.buildSuccess();
}
/**
* 删除接口
* @param id
* @return
*/
@DeleteMapping("/{id}")
public JsonData delete(@PathVariable Integer id) {
${table.entityPath}Service.removeById(id);
return JsonData.buildSuccess();
}
/**
* 批量删除接口
* @param ids
* @return
*/
@PostMapping("/del/batch")
public JsonData deleteBatch(@RequestBody List<Integer> ids) {
${table.entityPath}Service.removeByIds(ids);
return JsonData.buildSuccess();
}
}
然后运行main方法就大功告成了 !!!!!!