好得很程序员自学网

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

mybatis plus generator 根据数据库自动生成实体类的实现示例

1、添加依赖

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

< dependency >

             < groupId >com.baomidou</ groupId >

             < artifactId >mybatis-plus-boot-starter</ artifactId >

             < version >3.3.2</ version >

         </ dependency >

         < dependency >

             < groupId >com.baomidou</ groupId >

             < artifactId >mybatis-plus-generator</ artifactId >

             < version >3.3.2</ version >

         </ dependency >

         < dependency >

             < groupId >org.freemarker</ groupId >

             < artifactId >freemarker</ artifactId >

             < version >2.3.30</ version >

         </ dependency >

2、编写代码生成器

?

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

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

public class CodeGenerator {

     /**

      * <p>

      * 读取控制台内容

      * </p>

      */

     public static String scanner(String tip) {

         Scanner scanner = new Scanner(System.in);

         System.out.println( "请输入" + tip + ":" );

         if (scanner.hasNext()) {

             String ipt = scanner.next();

             if (StringUtils.isNotBlank(ipt)) {

                 return ipt;

             }

         }

         throw new MybatisPlusException( "请输入正确的" + tip + "!" );

     }

 

     public static void main(String[] args) {

         // 代码生成器

         AutoGenerator mpg = new AutoGenerator();

 

         // 全局配置

         GlobalConfig gc = new GlobalConfig();

         String projectPath = System.getProperty( "user.dir" );

         gc.setOutputDir(projectPath + "/check-service/src/main/java" );

         gc.setAuthor( "raoyujie" );

         gc.setOpen( false );

         // gc.setSwagger2(true); 实体属性 Swagger2 注解

         mpg.setGlobalConfig(gc);

 

         // 数据源配置

         DataSourceConfig dsc = new DataSourceConfig();

         dsc.setUrl( "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8" );

         dsc.setDriverName( "com.mysql.cj.jdbc.Driver" );

         dsc.setUsername( "root" );

         dsc.setPassword( "root" );

         mpg.setDataSource(dsc);

 

         // 包配置

         PackageConfig pc = new PackageConfig();

         pc.setParent( "com.hrbust.health.check.service" );

         mpg.setPackageInfo(pc);

 

         // 自定义配置

         InjectionConfig cfg = new InjectionConfig() {

             @Override

             public void initMap() {

                 // to do nothing

             }

         };

 

         // 如果模板引擎是 freemarker

         String templatePath = "/templates/mapper.xml.ftl" ;

 

         // 自定义输出配置

         List<FileOutConfig> focList = new ArrayList<>();

         // 自定义配置会被优先输出

         focList.add( new FileOutConfig(templatePath) {

             @Override

             public String outputFile(TableInfo tableInfo) {

                 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!

                 return projectPath + "/check-service/src/main/resources/mapper/" + pc.getModuleName()

                         + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;

             }

         });

 

         cfg.setFileOutConfigList(focList);

         mpg.setCfg(cfg);

 

         // 配置模板

         TemplateConfig templateConfig = new TemplateConfig();

 

         templateConfig.setXml( null );

         mpg.setTemplate(templateConfig);

 

         // 策略配置

         StrategyConfig strategy = new StrategyConfig();

         strategy.setNaming(NamingStrategy.underline_to_camel);

         strategy.setColumnNaming(NamingStrategy.underline_to_camel);

         strategy.setEntityLombokModel( true );

         strategy.setRestControllerStyle( true );

         strategy.setInclude(scanner( "表名,多个英文逗号分割" ).split( "," ));

         strategy.setControllerMappingHyphenStyle( true );

         strategy.setTablePrefix(pc.getModuleName() + "_" );

         mpg.setStrategy(strategy);

         mpg.setTemplateEngine( new FreemarkerTemplateEngine());

         mpg.execute();

     }

}

3、运行主程序,输入表名

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

原文链接:https://HdhCmsTestcnblogs测试数据/rao11/p/14261846.html

查看更多关于mybatis plus generator 根据数据库自动生成实体类的实现示例的详细内容...

  阅读:28次