好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

mybatis plus自动生成代码的示例代码

写一个简单的mybatis plus插件自动生成代码的例子

pom.xml 添加配置

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<!-- 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.2</ version >

</ dependency >

<!-- mybatis plus代码生成模板-->

< dependency >

     < groupId >org.apache.velocity</ groupId >

     < artifactId >velocity-engine-core</ artifactId >

     < version >2.0</ version >

</ dependency >

添加生成代码配置

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

package com.home.base.gen; /**

  * @author chenxf

  * @date 2022/5/5 15:00

  */

 

import com.baomidou.mybatisplus.annotation.FieldFill;

import com.baomidou.mybatisplus.annotation.IdType;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;

import com.baomidou.mybatisplus.generator.config.OutputFile;

import com.baomidou.mybatisplus.generator.fill.Column;

import com.baomidou.mybatisplus.generator.fill.Property;

import com.home.base.entity.BaseEntity;

import com.home.base.rest.BaseRestController;

 

import java.util.Collections;

 

/**

  * @author chenxf

  * @date 2022/5/5 15:00

  */

public class MybatisPlusGen {

    public static void main(String[] args){

        FastAutoGenerator

                .create( "jdbc:mysql://127.0.0.1:3306/policy_job?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8" , "root" , "123456" )

                .globalConfig(builder -> {

                    builder.author( "chenxf" ) // 设置作者

                            .fileOverride()

                            //.enableSwagger() // 开启 swagger 模式

                            .outputDir( "D://gen//java//" ); // 指定输出目录

                })

                .packageConfig(builder -> {

                    builder.parent( "com.home" ) // 设置父包名

                            .moduleName( "system" ) // 设置父包模块名

                            .controller( "rest" ) //controller 改名 rest

 

                            .pathInfo(Collections.singletonMap(OutputFile.xml, "D://gen//resources//mapper" )); // 设置mapperXml生成路径

                })

                .templateConfig(builder -> {

                    builder.entity( "/templates/entity.java" )

                            .controller( "/templates/controller.java" );

                })

                .strategyConfig(builder -> {

                    builder.addInclude( "test_test" )

                            .entityBuilder().superClass(BaseEntity. class )

                            .disableSerialVersionUID()

                            .enableChainModel()

                            .enableLombok()

                            .enableRemoveIsPrefix()

                            .enableTableFieldAnnotation()

                            .logicDeleteColumnName( "deleted" )

                            .logicDeletePropertyName( "deleteFlag" )

                            .addSuperEntityColumns( "id" , "create_by" , "deleted" , "create_time" , "update_by" , "update_time" )

                            .addTableFills( new Column( "create_time" , FieldFill.INSERT))

                            .addTableFills( new Property( "updateTime" , FieldFill.INSERT_UPDATE))

                            .idType(IdType.AUTO)

                            .formatFileName( "%sEntity" ).build()

                            .controllerBuilder()

                            .superClass(BaseRestController. class )

                            .enableRestStyle()

                            .formatFileName( "%sApiController" )

                            .build()

                            ; // 设置需要生成的表名

                            // .addTablePrefix("t_", "c_"); // 设置过滤表前缀

                })

                // .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板

                .execute();

    }

}

修改内容

entity使用了BaseEntity,添加了 id、deleted、createTime、updateTime、createBy、updateBy等公共字段 controller使用了BaseRestController tips:可以直接把代码生成在对应的工作目录

把生成的代码拷至对应的工作目录
添加创建时间、修改时间自动填充配置

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

package com.home测试数据ponent; /**

  * @author chenxf

  * @date 2022/5/6 15:57

  */

 

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;

import lombok.extern.slf4j.Slf4j;

import org.apache.ibatis.reflection.MetaObject;

import org.springframework.stereotype.Component;

 

import java.time.LocalDateTime;

 

/**

  * @author chenxf

  * @date 2022/5/6 15:57

  */

@Slf4j

@Component

public class BaseHandler implements MetaObjectHandler {

    @Override

    public void insertFill(MetaObject metaObject) {

        log.info( "start insert fill ...." );

        this .fillStrategy(metaObject, "createTime" , LocalDateTime.now());

        this .fillStrategy(metaObject, "updateTime" , LocalDateTime.now());

        //TODO set createBy

    }

 

    @Override

    public void updateFill(MetaObject metaObject) {

        log.info( "start update fill ...." );

        this .fillStrategy(metaObject, "updateTime" , LocalDateTime.now());

        //TODO set updateBy

    }

}

启动 测试

访问swagger测试相应接口
http://127.0.0.1:10089/doc.html

参考资料
https://baomidou测试数据/pages/24112f/

到此这篇关于mybatis plus自动生成代码的示例代码的文章就介绍到这了,更多相关mybatis plus自动生成代码内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://juejin.cn/post/7094537088086835207

查看更多关于mybatis plus自动生成代码的示例代码的详细内容...

  阅读:12次