MybatisPlus代码生成器
这里讲解的是新版 (mybatis-plus 3.5.1+版本),旧版不兼容
官方文档:https://baomidou.com/(建议多看看官方文档,每种功能里面都有讲解)
配置
这里的配置表格和官方文档一致
数据源配置(DataSource)
属性说明示例urljdbc路径jdbc:mysql://127.0.0.1:3306/mybatis-plususername数据库账号rootpassword数据库密码123456dbQuery(IDbQuery)数据库查询new MySqlQuery()schema(String)数据库schema(部分数据库适用)mybatis-plustypeConvert(ITypeConvert)数据库类型转换器new MySqlTypeConvert()keyWordsHandler(IKeyWordsHandler)数据库关键字处理器new MySqlKeyWordsHandler()全局配置(GlobalConfig)
方法说明示例fileOverride覆盖已生成文件默认值:falsedisableOpenDir禁止打开输出目录默认值:trueoutputDir(String)指定输出目录/opt/baomidou/ 默认值: windows:D:// linux or mac : /tmpauthor(String)作者名baomidou 默认值:作者enableKotlin开启 kotlin 模式默认值:falseenableSwagger开启 swagger 模式默认值:falsedateType(DateType)时间策略DateType.ONLY_DATE=Date 默认值: DateType.TIME_PACK=LocalDateTimecommentDate(String)注释日期默认值: yyyy-MM-dd包配置(PackageConfig)
方法说明示例parent(String)父包名默认值:com.baomidoumoduleName(String)父包模块名默认值:无entity(String)Entity 包名默认值:entityservice(String)Service 包名默认值:serviceserviceImpl(String)Service Impl 包名默认值:service.implmapper(String)Mapper 包名默认值:mappermapperXml(String)Mapper XML 包名默认值:mapper.xmlcontroller(String)Controller 包名默认值:controllerother(String)自定义文件包名输出自定义文件时所用到的包名pathInfo(Map)路径配置信息Collections.singletonMap(OutputFile.mapperXml, "D://")策略配置(StrategyConfig)
方法说明示例enableCapitalMode开启大写命名默认值:falseenableSkipView开启跳过视图默认值:falsedisableSqlFilter禁用 sql 过滤默认值:true,语法不能支持使用 sql 过滤表的话,可以考虑关闭此开关enableSchema启用 schema默认值:false,多 schema 场景的时候打开likeTable(LikeTable)模糊表匹配(sql 过滤)likeTable 与 notLikeTable 只能配置一项notLikeTable(LikeTable)模糊表排除(sql 过滤)likeTable 与 notLikeTable 只能配置一项addInclude(String...)增加表匹配(内存过滤)include 与 exclude 只能配置一项addExclude(String...)增加表排除匹配(内存过滤)include 与 exclude 只能配置一项addTablePrefix(String...)增加过滤表前缀addTableSuffix(String...)增加过滤表后缀addFieldPrefix(String...)增加过滤字段前缀addFieldSuffix(String...)增加过滤字段后缀entityBuilder实体策略配置controllerBuildercontroller 策略配置mapperBuildermapper 策略配置serviceBuilderservice 策略配置模板引擎配置(TemplateEngine)
默认 Velocity ;可选模板引擎 Beetl 或 Freemarker。(二选一即可)
模板引擎代码Velocity默认.templateEngine(new VelocityTemplateEngine())Freemarker可选.templateEngine(new FreemarkerTemplateEngine())Beetl可选.templateEngine(new BeetlTemplateEngine())手动配置代码生成器
- 建表,插入数据
- DROP TABLE IF EXISTS user;
- CREATE TABLE user
- (
- id BIGINT(20) NOT NULL COMMENT '主键ID',
- name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
- age INT(11) NULL DEFAULT NULL COMMENT '年龄',
- email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
- version INT(10) NOT NULL DEFAULT 1 COMMIT '乐观锁版本号',
- DELETED INT(10) NOT NULL DEFAULT 0 COMMIT '逻辑删除',
- CREATE_TIME DATE COMMIT '创建时间',
- modify_time DATE COMMIT '更新时间',
- PRIMARY KEY (id)
- );
- DELETE FROM user;
- INSERT INTO user (id, name, age, email) VALUES
- (1, '工藤新一','test1@baomidou.com'),
- (2, '毛利兰','est2@baomidou.com'),
- (3, '柯南', 28, 'test3@baomidou.com'),
- (4, '灰原哀', 21, 'test4@baomidou.com'),
- (5, '工藤有希子', 24, 'test5@baomidou.com');
复制代码 - 导入依赖
- <dependencies>
-
- <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>
- </dependency>
-
- <dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-annotations</artifactId>
- <version>1.6.3</version>
- </dependency>
-
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </dependency>
-
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>8.0.26</version>
- </dependency>
-
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-boot-starter</artifactId>
- <version>3.5.2</version>
- </dependency>
-
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-generator</artifactId>
- <version>3.5.2</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.velocity</groupId>
- <artifactId>velocity-engine-core</artifactId>
- <version>2.3</version>
- </dependency>
-
-
- <dependency>
- <groupId>org.freemarker</groupId>
- <artifactId>freemarker</artifactId>
- <version>2.3.31</version>
- </dependency>
-
- <dependency>
- <groupId>com.ibeetl</groupId>
- <artifactId>beetl</artifactId>
- <version>3.8.1.RELEASE</version>
- </dependency>
- </dependencies>
复制代码 - yaml
- #设置开发环境
- spring:
- datasource:
- username: root
- password: 123456
- driver-class-name: com.p6spy.engine.spy.P6SpyDriver
- url: jdbc:p6spy:mysql://localhost:3306/mybatis_plus?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
- mybatis-plus:
- #配置日志 log-impl:日志实现
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
- global-config:
- db-config:
- logic-delete-field: isDelete # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
- logic-delete-value: 1 # 逻辑已删除值(默认为 1)
- logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
复制代码 - 在测试类里写入主方法并修改参数,运行即可【配置已经封装好了】
- 运行结果:

生成的包:

注意:代码生成器生成的实体类是用@Setter和@Getter ,没有toString方法和有参、无参构造,所以代码生成后需要手动在实体类上删除@Setter和@Getter ,添加@Data @NoArgsConstructor @AllArgsConstructor
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |