MyBatisPlus代码生成器

代码生成器

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

环境准备

创建一个employee表

SET FOREIGN_KEY_CHECKS=0;
DROPTABLE IF EXISTS `employee`;
CREATETABLE `employee` (
  `id` bigint(20) NOTNULL COMMENT 'ID',
  `name` varchar(255) DEFAULTNULL COMMENT '用户名',
  `gender` varchar(255) DEFAULTNULL COMMENT '性别',
  `version` int(10) DEFAULT'1' COMMENT '乐观锁',
  `deleted` int(1) DEFAULT'0' COMMENT '逻辑删除',
  `create_time` timestampNULLDEFAULTNULL COMMENT '创建时间',
  `update_time` timestampNULLDEFAULTNULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

复制代码

创建一个SpringBoot项目。配置Swagger,数据库驱动,MyBatisPlus,Web,lombok依赖。

代码生成器需要添加一下依赖

完整的pom.xml依赖代码

<dependencies><dependency><!--swagger2--><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version><exclusions><exclusion><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId></exclusion><exclusion><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId></exclusion></exclusions></dependency><!--解决进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本--><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.5.21</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId><version>1.5.21</version></dependency><!--swagger-ui--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><!--代码生成器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.0.5</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency><!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mybatis-plus mybatis-plus自己开发的,非官方的--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.5</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies>复制代码

配置SpringBoot配置文件

# 配置数据库
spring.datasource.username=root
spring.datasource.password=kylin
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 配置日志 控制台输出
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl



#配置逻辑删除 默认为0 逻辑删除后为1
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0


#设置开发环境
spring.profiles.active=dev


#关闭MybatisPlus的驼峰命名
#mybatis-plus.configuration.map-underscore-to-camel-case=false
复制代码

由于测试中要使用MyBatisPlus的乐观锁,Sql性能分析,自动填充功能,填充策略。所以我们要配置MyBatisPlus的配置类,和处理器。详情见博客的MyBatis-Plus的CRUD及其扩展文章。同时还使用Swagger,所以也要配置Swagger配置类。详情见博客文章SpringBoot集成Swagger

{% note success %}MybatisPlusConfig{% endnote %}

//@MapperScan("com.kylin.mapper")//扫描mapper文件夹@EnableTransactionManagement//自动管理事务@Configuration//配置类publicclassMybatisPlusConfig {
    //注册乐观锁插件@Beanpublic OptimisticLockerInterceptor optimisticLockerInterceptor() {
        returnnewOptimisticLockerInterceptor();
    }

    //注册分页插件@Beanpublic PaginationInterceptor paginationInterceptor() {
        returnnewPaginationInterceptor();
    }

    //逻辑删除组件@Beanpublic ISqlInjector sqlInjector() {
        returnnewLogicSqlInjector();
    }
    //性能分析插件@Bean@Profile({"dev","test"})// 设置 dev test 环境开启,保证我们的效率public PerformanceInterceptor performanceInterceptor() {
        PerformanceInterceptorperformanceInterceptor=newPerformanceInterceptor();
        performanceInterceptor.setMaxTime(100);//运行时间超过1毫秒,就不执行。//performanceInterceptor.setFormat(true);//是否格式化代码return performanceInterceptor;
    }
}
复制代码

{% note success %}MyMetaObjectHandler{% endnote %}

@Slf4j@Component//一定不要忘记把处理器添加到Spring的IOC容器中publicclassMyMetaObjectHandlerimplementsMetaObjectHandler {
    //插入时的填充策略@OverridepublicvoidinsertFill(MetaObject metaObject) {
        //其中方法参数中第一个是前面自动填充所对应的字段,第二个是要自动填充的值。第三个是指定实体类的对象
        log.info("start insert fill.....");
        this.setFieldValByName("createTime",newDate(),metaObject);//插入数据时给createTime插入一个时间this.setFieldValByName("updateTime",newDate(),metaObject);
    }

    //更新时的填充策略@OverridepublicvoidupdateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime",newDate(),metaObject);//更新数据时给updateTime插入一个时间
    }
}
复制代码

{% note success %}SwaggerConfig{% endnote %}

@Configuration//配置类@EnableSwagger2//开启swagger2publicclassSwaggerConfig {

    //配置了Swagger的Docket的bean实例@Beanpublic Docket docket(Environment environment) {
        //设置要显示的Swagger环境Profilesprofiles= Profiles.of("dev", "test");
        //通过environment.acceptProfiles判断是否处在自己设定的环境中booleanflag= environment.acceptsProfiles(profiles);
        System.out.println(flag);
        returnnewDocket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //enable:是否启动swagger 为false 不能浏览器中访问
                .enable(flag)
                .groupName("Kylin")
                .select()
                //RequestHandlerSelectors 配置要扫描接口的方式//basePackage():指定要扫描的包//any():扫描全部//none():不扫描//withClassAnnotation():扫描类上的注解 参数是一个注解的反射对象//withMethodAnnotation():扫描方法上的注解
                .apis(RequestHandlerSelectors.basePackage("com.kylin.controller"))
                //paths()过滤什么路径//.paths(PathSelectors.ant("/kylin/**"))
                .build();
    }

    //配置Swagger信息 apiInfoprivate ApiInfo apiInfo() {
        Contactcontact=newContact("Kylin", "https://www.kylin.show", "zhang171346168@qq.com");
        returnnewApiInfo(
                "Kylin的SwaggerAPI文档",//标题"学习不易,努力努力~",//描述"v1.0",//版本"https://www.kylin.show",//组织链接
                contact,//联系人信息"Apache 2.0",//许可"http://www.apache.org/licenses/LINCENSE-2.0",//许可链接newArrayList());
    }
}
复制代码

到此为之环境搭建完成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值