• mybatis-plus自动生成


    MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

    特性(官网提供)

    无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
    损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作,BaseMapper
    强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求,简单的CRUD操作不用自己编写。
    支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
    支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
    支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
    支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
    内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用(自动生成代码)
    内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
    分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
    内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
    内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操

    配置依赖

    1. <dependencies>
    2. <dependency>
    3. <groupId>junit</groupId>
    4. <artifactId>junit</artifactId>
    5. <version>4.12</version>
    6. <scope>test</scope>
    7. </dependency>
    8. <!-- //导入mybaitis核心-->
    9. <dependency>
    10. <groupId>com.baomidou</groupId>
    11. <artifactId>mybatis-plus-boot-starter</artifactId>
    12. <version>3.4.2</version>
    13. </dependency>
    14. <dependency>
    15. <groupId>com.baomidou</groupId>
    16. <artifactId>mybatis-plus-generator</artifactId>
    17. <version>3.4.1</version>
    18. </dependency>
    19. <dependency>
    20. <groupId>org.apache.velocity</groupId>
    21. <artifactId>velocity</artifactId>
    22. <version>1.7</version>
    23. </dependency>
    24. <dependency>
    25. <groupId>mysql</groupId>
    26. <artifactId>mysql-connector-java</artifactId>
    27. <version>5.1.38</version>
    28. </dependency>
    29. <!-- <dependency>-->
    30. <!-- <groupId>com.alibaba</groupId>-->
    31. <!-- <artifactId>druid-spring-boot-starter</artifactId>-->
    32. <!-- <version>1.1.9</version>-->
    33. <!-- </dependency>-->
    34. <dependency>
    35. <groupId>com.alibaba</groupId>
    36. <artifactId>druid-spring-boot-starter</artifactId>
    37. <version>1.1.9</version>
    38. </dependency>
    39. <dependency>
    40. <groupId>com.alibaba.cloud</groupId>
    41. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    42. </dependency>
    43. <dependency>
    44. <groupId>org.springframework.cloud</groupId>
    45. <artifactId>spring-cloud-starter-openfeign</artifactId>
    46. </dependency>
    47. </dependencies>

    编写代码

    1. package com.kgc.mynacos02.ordermodule;
    2. import com.baomidou.mybatisplus.annotation.IdType;
    3. import com.baomidou.mybatisplus.generator.AutoGenerator;
    4. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
    5. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
    6. import com.baomidou.mybatisplus.generator.config.PackageConfig;
    7. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
    8. import com.baomidou.mybatisplus.generator.config.rules.DateType;
    9. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    10. public class GeneratorCode {
    11. public static void main(String[] args) {
    12. AutoGenerator ag = new AutoGenerator();
    13. // //开启连接数据库
    14. DataSourceConfig dsc = new DataSourceConfig();
    15. dsc.setUrl("jdbc:mysql://192.168.64.135:3306/mydemo1");
    16. dsc.setDriverName("com.mysql.jdbc.Driver");
    17. dsc.setUsername("root");
    18. dsc.setPassword("3090_Cmok");
    19. ag.setDataSource(dsc);
    20. //设置全局配置
    21. GlobalConfig gc = new GlobalConfig();
    22. gc.setOutputDir(System.getProperty("user.dir")+"/mynacos02-ordermodule/src/main/java");
    23. gc.setAuthor("js");
    24. gc.setFileOverride(true);
    25. gc.setOpen(false);
    26. gc.setMapperName("%sMapper");//OrderMapper
    27. gc.setXmlName("%sMapper");//OrderMapper.xml
    28. gc.setServiceName("%sService");//Service
    29. gc.setServiceImplName("%sServiceImpl");
    30. gc.setControllerName("%sCtrl");
    31. ag.setGlobalConfig(gc);
    32. //设置包名
    33. PackageConfig pc = new PackageConfig();
    34. pc.setParent("com.kgc.mynacos02.ordermodule");
    35. pc.setMapper("mapper");
    36. pc.setEntity("domain");
    37. pc.setController("controller");
    38. pc.setService("services");
    39. pc.setServiceImpl("services.impl");
    40. //设置每个类的主键方式
    41. gc.setIdType(IdType.AUTO);
    42. //设置日期类型
    43. gc.setDateType(DateType.ONLY_DATE);
    44. ag.setPackageInfo(pc);
    45. //设置策略
    46. StrategyConfig sc = new StrategyConfig();
    47. sc.setEntityLombokModel(true);
    48. sc.setRestControllerStyle(true);
    49. sc.setColumnNaming(NamingStrategy.underline_to_camel);
    50. sc.setNaming(NamingStrategy.underline_to_camel);
    51. ag.setStrategy(sc);
    52. ag.execute();
    53. }
    54. }

  • 相关阅读:
    表情和微表情数据集总结
    关于打代码的一些些心得
    Kafka 如何保证消息顺序及其实现示例
    【操作系统学习笔记】文件管理3.5
    OTFS-ISAC雷达部分最新进展(含matlab仿真+USRP验证)
    Rust的数据,函数及控制流内容总结
    剑指offer--重建二叉树
    C++实现高性能内存池(一)
    Educational Codeforces Round 148 [Rated for Div. 2]A~C
    什么是单链表?
  • 原文地址:https://blog.csdn.net/just_learing/article/details/125621301