mp自带的代码生成器
不要求会写,只要求在官网提供的模板上会修改
package com.ws.demo;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;
/**
* @author ws
* @since 2021/12/29
*/
public class CodeGenerator {
@Test
public void run() {
// 1、创建代码生成器
AutoGenerator mpg = new AutoGenerator();
// 2、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir("C:\\idea\\idea_store\\guli_parent\\guli-service\\service-edu" + "/src/main/java");
gc.setAuthor("wangshun");
gc.setOpen(false); //生成后是否打开资源管理器
gc.setFileOverride(false); //重新生成时文件是否覆盖
//UserServie
gc.setServiceName("%sService"); //去掉Service接口的首字母I
gc.setIdType(IdType.ID_WORKER_STR); //主键策略
gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
gc.setSwagger2(true);//开启Swagger2模式
mpg.setGlobalConfig(gc);
// 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("0000");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4、包配置
PackageConfig pc = new PackageConfig();
//下面两行生成包路径就是com.ws.eduservice
pc.setModuleName("eduservice"); //模块名
pc.setParent("com.ws");
//包下面的controller,service,mapper,entity com.atguigu.eduservice.controlle//service//mapper//entity
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 5、策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("edu_teacher");
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
strategy.setRestControllerStyle(true); //restful api风格控制器
strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
mpg.setStrategy(strategy);
// 6、执行
mpg.execute();
}
}
使用介绍
- 首先我的项目结构如下,现在想在service-edu下面建立完善的controller.service,serviceImpl,mapper,xml
- 由于我们现在只要在edu下面生成代码,并且这个代码生成器的代码不需要打包进入项目,所以可以写在edu的test文件夹下面(在test下面建立包com.ws.demo,再将generateCode复制进去进行修改)
- 第一部分:不需要改动
- 第二部分中
- 将setOutputDir前半部分c:\~~~service-edu改为绝对路径,看自己电脑里面的路径
- 主键策略要看自己表里面的主键为Long还是String类型,要是Long类型就要改为gc.setIdType(IdType.Id_WORKER),String类型就是gc.setIdType(IdType.Id_WORKER_STR)
- 第三部分中:就是修改数据库账号密码
- 第四部分:生成的代码放入的路径
- 第五部分:没啥要改的,就把那个setInclude(表名)改成自己表名就行
最后成果
package com.ws.eduservice.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 讲师 前端控制器
* </p>
*
* @author wangshun
* @since 2021-12-29
*/
@RestController
@RequestMapping("/eduservice/teacher")
public class EduTeacherController {
}
-----------------------------------------------------------------------------------
package com.ws.eduservice.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 讲师
* </p>
*
* @author wangshun
* @since 2021-12-29
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="EduTeacher对象", description="讲师")
public class EduTeacher implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "讲师ID")
@TableId(value = "id", type = IdType.ID_WORKER_STR)
private String id;
@ApiModelProperty(value = "讲师姓名")
private String name;
@ApiModelProperty(value = "讲师简介")
private String intro;
@ApiModelProperty(value = "讲师资历,一句话说明讲师")
private String career;
@ApiModelProperty(value = "头衔 1高级讲师 2首席讲师")
private Integer level;
@ApiModelProperty(value = "讲师头像")
private String avatar;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "逻辑删除 1(true)已删除, 0(false)未删除")
private Boolean isDeleted;
@ApiModelProperty(value = "创建时间")
private Date gmtCreate;
@ApiModelProperty(value = "更新时间")
private Date gmtModified;
}
-------------------------------------------------------------------------------------
package com.ws.eduservice.mapper;
import com.ws.eduservice.entity.EduTeacher;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 讲师 Mapper 接口
* </p>
*
* @author wangshun
* @since 2021-12-29
*/
public interface EduTeacherMapper extends BaseMapper<EduTeacher> {
}
-------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ws.eduservice.mapper.EduTeacherMapper">
</mapper>
------------------------------------------------------------------------------
package com.ws.eduservice.service;
import com.ws.eduservice.entity.EduTeacher;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 讲师 服务类
* </p>
*
* @author wangshun
* @since 2021-12-29
*/
public interface EduTeacherService extends IService<EduTeacher> {
}
----------------------------------------------------------------------------------
package com.ws.eduservice.service.impl;
import com.ws.eduservice.entity.EduTeacher;
import com.ws.eduservice.mapper.EduTeacherMapper;
import com.ws.eduservice.service.EduTeacherService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 讲师 服务实现类
* </p>
*
* @author wangshun
* @since 2021-12-29
*/
@Service
public class EduTeacherServiceImpl extends ServiceImpl<EduTeacherMapper, EduTeacher> implements EduTeacherService {
}
isplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
-
- 讲师 服务实现类
- @author wangshun
- @since 2021-12-29
*/
@Service
public class EduTeacherServiceImpl extends ServiceImpl<EduTeacherMapper, EduTeacher> implements EduTeacherService {
}