zoukankan      html  css  js  c++  java
  • 转--MyBatis-Plus代码自动生成工具

    简介

    特性

    • 无侵入:Mybatis-Plus 在 Mybatis 的基础上进行扩展,只做增强不做改变,引入 Mybatis-Plus 不会对您现有的 Mybatis 构架产生任何影响,而且 MP 支持所有 Mybatis 原生的特性
    • 依赖少:仅仅依赖 Mybatis 以及 Mybatis-Spring
    • 损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作
    • 预防Sql注入:内置Sql注入剥离器,有效预防Sql注入攻击
    • 通用CRUD操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
    • 多种主键策略:支持多达4种主键策略(内含分布式唯一ID生成器),可自由配置,完美解决主键问题
    • 支持ActiveRecord:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可实现基本 CRUD 操作
    • 支持代码生成:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用(P.S. 比 Mybatis 官方的 Generator 更加强大!)
    • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
    • 支持关键词自动转义:支持数据库关键词(order、key……)自动转义,还可自定义关键词
    • 内置分页插件:基于Mybatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询
    • 内置性能分析插件:可输出Sql语句以及其执行时间,建议开发测试时启用该功能,能有效解决慢查询
    • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,预防误操作

    我认为:和MyBatis的逆向工程相比,MP可生成service,controller等等

    项目构建

    添加依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
    <java.version>1.8</java.version>
    </properties>

    <dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>2.2.0</version>
    </dependency>
    <dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity</artifactId>
    <version>1.7</version>
    </dependency>
    <dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-tools</artifactId>
    <version>2.0</version>
    </dependency>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    </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>

    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>

    </project>


    创建配置类并且运行

    注意:

    1.创建数据库和实体类的时候最好一致

    2.数据库表和实体类的名称一致

    3.驼峰命名规则和下划线直接的转换

    package com.example.demo;

    import com.baomidou.mybatisplus.enums.IdType;
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
    import com.baomidou.mybatisplus.generator.config.GlobalConfig;
    import com.baomidou.mybatisplus.generator.config.PackageConfig;
    import com.baomidou.mybatisplus.generator.config.StrategyConfig;
    import com.baomidou.mybatisplus.generator.config.rules.DbType;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

    public class Demo {
    public static void main(String[] args ){
    //1. 全局配置
    GlobalConfig config = new GlobalConfig();
    config.setActiveRecord(true) // 是否支持AR模式
    .setAuthor("Bean") // 作者
    //.setOutputDir("D:\workspace_mp\mp03\src\main\java") // 生成路径
    .setOutputDir("E:\20200615\04.开发域\01.代码\Branch\shs\demo\src\main\java") // 生成路径
    .setFileOverride(true) // 文件覆盖
    .setIdType(IdType.AUTO) // 主键策略
    .setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I
    // IEmployeeService
    .setBaseResultMap(true)//生成基本的resultMap
    .setBaseColumnList(true);//生成基本的SQL片段

    //2. 数据源配置
    DataSourceConfig dsConfig = new DataSourceConfig();
    dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型
    .setDriverName("com.mysql.jdbc.Driver")
    .setUrl("jdbc:mysql://localhost:3306/world?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true")
    .setUsername("root")
    .setPassword("root");

    //3. 策略配置globalConfiguration中
    StrategyConfig stConfig = new StrategyConfig();
    stConfig.setCapitalMode(true) //全局大写命名
    .setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线
    .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
    //.setTablePrefix("tbl_")
    .setInclude("user"); // 生成的表

    //4. 包名策略配置
    PackageConfig pkConfig = new PackageConfig();
    pkConfig.setParent("com.imooc")
    .setMapper("mapper")//dao
    .setService("service")//servcie
    .setController("controller")//controller
    .setEntity("entity")
    .setXml("mapper");//mapper.xml

    //5. 整合配置
    AutoGenerator ag = new AutoGenerator();
    ag.setGlobalConfig(config)
    .setDataSource(dsConfig)
    .setStrategy(stConfig)
    .setPackageInfo(pkConfig);

    //6. 执行
    ag.execute();
    }

    }
  • 相关阅读:
    帧框架总结
    Java中Excel表格的上传与下载
    一种解决eclipse中安装maven出错的方法
    Eclipse中如何忽略报错的js文件
    如何解决jQuery easyui中locale文件下easyui-lang-zh_CN中文乱码问题
    java面试题
    登录功能(MD5加密)
    CSS基础
    java框架之spring
    基于Docker搭建Maven私服环境
  • 原文地址:https://www.cnblogs.com/lyf906522290/p/13730846.html
Copyright © 2011-2022 走看看