1. pom.xml引入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <!-- 代码自动生成--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency>
2.代码自动生成
public class GeneratorCode { public static final String url = "jdbc:mysql://localhost:3306/XXX?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8"; public static final String user= "XXX"; public static final String pwd = "XXX"; public static void main(String[] args) { //表名 String tables = "sys_user,sys_org"; //模块名称 String moduleName= "user"; String projectPath = System.getProperty("user.dir"); String author="xxx"; FastAutoGenerator.create(url, user, pwd) .globalConfig(builder -> { builder.author(author) // 设置作者 .fileOverride() // 覆盖已生成文件 .outputDir(projectPath + "/src/main/java"); // 指定输出目录 }) .packageConfig(builder -> { builder.parent("com.smart.doc") // 设置父包名 .moduleName(moduleName) // 设置父包模块名 .pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/src/main/resources/mapper/"+moduleName)); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude(tables.split(",")) // 设置需要生成的表名 .entityBuilder().enableLombok()//entity使用lombok .controllerBuilder().enableHyphenStyle()//controller开启驼峰 .enableRestStyle()//使用restController .mapperBuilder().enableMapperAnnotation();//开启mapper注解 // .addTablePrefix("t_", "c_"); // 设置过滤表前缀 }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } }
3.application.properties 配置
#开启sql日志 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl # 该配置就是将带有下划线的表字段映射为驼峰格式的实体类属性 mybatis-plus.configuration.map-underscore-to-camel-case=true mybatis-plus.mapper-locations: classpath*:mapper/**/*.xml spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/XXX?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true spring.datasource.username=XXX spring.datasource.password=XXX
4.mybatis-plus分页插件配置
@EnableTransactionManagement // 开启事务管理 @Configuration public class MybatisConfig { /** * 分页插件 * @return */ @Bean public MybatisPlusInterceptor paginationInterceptor() { MybatisPlusInterceptor paginationInterceptor = new MybatisPlusInterceptor(); paginationInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return paginationInterceptor; } }
5.Corller测试
@RestController @RequestMapping("/user/sys-user") public class SysUserController { @Autowired private ISysUserService sysUserService; /** * 获取所有用户列表 * @param commonRequest * @return */ @PostMapping("/list") @ResponseBody public CommonResult<Page<List<SysUser>>> list(@RequestBody CommonRequestPage<SysUserVo> commonRequest){ CommonPage page = commonRequest.getPage(); return CommonResult.success(commonRequest.getReqId(),sysUserService.page(new Page<>(page.getCurrent(),page.getSize()))); } }
6.启动类
@SpringBootApplication @ComponentScan public class DocApplication { public static void main(String[] args) { SpringApplication.run(DocApplication.class,args); } }
7.测试结果