MyBatisPlus代码生成器的用法

上一篇是 《MybatisPlus自定义SQL查询及分页查询和通用Service的使用

代码生成器

简单概述

MyBatisPlus提供了强大的代码生成器,可生成实体类、mapper接口、mapper映射文件、service接口及实现类、Controller控制器等

使用MyBatisPlus提供的代码生成器步骤:

  • 第一步:添加相关依赖
  • 第二步:编写代码生成器类

代码生成器的使用

1)数据库创你需要的表
-- 创建表
CREATE TABLE db_mybatisplus(
   id INT(11) PRIMARY KEY AUTO_INCREMENT,
   user_name VARCHAR(50),
   email VARCHAR(50),
   gender CHAR(1),
   age INT
);
INSERT INTO t_employee(user_name,email,gender,age) VALUES('Tom','tom@qq.com',1,22);
INSERT INTO t_employee(user_name,email,gender,age) VALUES('Jerry','jerry@qq.com',0,25);
INSERT INTO t_employee(user_name,email,gender,age) VALUES('Black','black@qq.com',1,30);
INSERT INTO t_employee(user_name,email,gender,age) VALUES('White','white@qq.com',0,35);
2)添加相关依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<!-- MySQL驱动包 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<!-- MyBatisPlus驱动包 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.1.1</version>
</dependency>
<!-- druid 数据库连接池 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.9</version>
</dependency>


<!-- 以下是代码生成器的jar依赖 -->
<!-- 代码生成器核心jar依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.1.1</version>
</dependency>

<!-- 使用默认的velocity模板 -->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.0</version>
</dependency>

<!-- sfl4j -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
</dependency>
3)编写代码生成器类

在test包下创TestMP类

在这里插入图片描述

4)根据自己数据库信息需求 修改这个方法内的 变量 就可以拉

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestMP {

    private static String author ="zoey";//作者名称
    private static String outputDir ="E:\\";//生成的位置
    private static String driver ="com.mysql.cj.jdbc.Driver";//驱动,注意版本
    //连接路径,注意修改数据库名称
    private static String url ="jdbc:mysql://localhost:3306/db_mybatisplus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
    private static String username ="root";//数据库用户名
    private static String password ="root";//数据库密码
    private static String tablePrefix ="t_";//数据库表的前缀,如t_user
    private static String [] tables = {"t_employee","user"};	//生成的表 多表用逗号隔开
    private static String parentPackage = "com.kazu.mybatisplus02";//顶级包结构
    private static String dao = "dao";//数据访问层包名称
    private static String service = "service";//业务逻辑层包名称
    private static String entity = "entity";//实体层包名称
    private static String controller = "controller";//控制器层包名称
    private static String mapperxml = "dao";//mapper映射文件包名称


    /**
     * 代码生成    示例代码
     */
    @Test
    public void  testGenerator() {
        //1. 全局配置
        GlobalConfig config = new GlobalConfig();
        config.setAuthor(author) // 作者
                .setOutputDir(outputDir) // 生成路径
                .setFileOverride(true)  // 文件覆盖
                .setIdType(IdType.AUTO) // 主键策略
                .setServiceName("%sService")  // 设置生成的service接口的名字的首字母是否为I,加%s则不生成I
                .setBaseResultMap(true)	//映射文件中是否生成ResultMap配置
                .setBaseColumnList(true);	//生成通用sql字段

        //2. 数据源配置
        DataSourceConfig dsConfig  = new DataSourceConfig();
        dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
                .setDriverName(driver)	//设置驱动
                .setUrl(url)			//设置连接路径
                .setUsername(username)	//设置用户名
                .setPassword(password);	//设置密码

        //3. 策略配置
        StrategyConfig stConfig = new StrategyConfig();
        stConfig.setCapitalMode(true) //全局大写命名
                .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                .setTablePrefix(tablePrefix) //表前缀
                .setInclude(tables);  // 生成的表

        //4. 包名策略配置
        PackageConfig pkConfig = new PackageConfig();
        pkConfig.setParent(parentPackage)//顶级包结构
                .setMapper(dao)	//数据访问层
                .setService(service)	//业务逻辑层
                .setController(controller)	//控制器
                .setEntity(entity)	//实体类
                .setXml(mapperxml);	//mapper映射文件

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

点击运行 运行成功后会自动弹出文件夹 并且多了个 .iml 的文件 等待项目自动刷新就可以拉
.
我没记错的话应该是会弹文件夹的


版权声明:本文为th_century17原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。