Mybatis-Plus自动生成三层架构代码

1、pom.xml引入依赖
  • 数据库连接依赖
  • mybatis-plus依赖,因为jar包依赖要用到
  • 自动生成代码的jar包依赖
  • 自动生成代码的模版依赖
<dependencies>
    <!--mysq连接驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!--mybatis-puls-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3.1</version>
    </dependency>
    <!--引入自动生成代码jar包-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.5.1</version>
    </dependency>
    <!--自动生成代码使用的freemarker-->
    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.28</version>
    </dependency>
</dependencies>
2、编写代码自动生成类

工具类需要配置下面信息

  • 数据库连接信息:地址,用户名,密码
  • 作者信息
  • 文件输出根目录
  • 父目录
  • mapper文件目录
  • 表名
package com.zhuimengren.test;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

/**
 * 自动生成代码工具类
 */
public class MysqlGenerator {
    public static void main(String[] args) {
        // 连接信息:地址,用户名,密码
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/service-driver-user?characterEncoding=utf-8&serverTimezone=GMT%2B8",
                "root", "root")
                .globalConfig(builder -> {
                    // 作者信息
                    builder.author("ZhuiMengRen").fileOverride()
                            // 文件输出根目录
                            .outputDir("D:\\mycode\\online-taxi-public\\test-generator\\src\\main\\java");
                })
                .packageConfig(builder -> {
                    // 父目录
                    builder.parent("com.zhuimengren.test")
                            // mapper文件目录
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,
                                    "D:\\mycode\\online-taxi-public\\test-generator\\src\\main\\java\\com\\zhuimengren\\test\\mapper"));
                }).strategyConfig(builder -> {
                    // 表名
                    builder.addInclude("driver_user_work_status");
                })
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}
3、生成结果
  • 点击运行MysqlGenerator类中的main方法,运行后控制台出现下面信息即是生成完成。

  • 生成的是三层架构的文件夹代码,包括创建对应的文件夹和对应的类。

  • 示例代码
package com.zhuimengren.test.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * 
 * </p>
 *
 * @author ZhuiMengRen
 * @since 2023-12-27
 */
@TableName("driver_user_work_status")
public class DriverUserWorkStatus implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    private Long driverId;

    /**
     * 0:收车,1:出车,2:暂停,3: 服务中
     */
    private Integer workStatus;

    private LocalDateTime gmtCreate;

    private LocalDateTime gmtModified;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public Long getDriverId() {
        return driverId;
    }

    public void setDriverId(Long driverId) {
        this.driverId = driverId;
    }
    public Integer getWorkStatus() {
        return workStatus;
    }

    public void setWorkStatus(Integer workStatus) {
        this.workStatus = workStatus;
    }
    public LocalDateTime getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(LocalDateTime gmtCreate) {
        this.gmtCreate = gmtCreate;
    }
    public LocalDateTime getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(LocalDateTime gmtModified) {
        this.gmtModified = gmtModified;
    }

    @Override
    public String toString() {
        return "DriverUserWorkStatus{" +
            "id=" + id +
            ", driverId=" + driverId +
            ", workStatus=" + workStatus +
            ", gmtCreate=" + gmtCreate +
            ", gmtModified=" + gmtModified +
        "}";
    }
}
package com.zhuimengren.test.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author ZhuiMengRen
 * @since 2023-12-27
 */
@Controller
@RequestMapping("/driver-user-work-status")
public class DriverUserWorkStatusController {

}
package com.zhuimengren.test.service;
import com.zhuimengren.test.entity.DriverUserWorkStatus;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ZhuiMengRen
 * @since 2023-12-27
 */
public interface IDriverUserWorkStatusService extends IService<DriverUserWorkStatus> {

}
package com.zhuimengren.test.service.impl;
import com.zhuimengren.test.entity.DriverUserWorkStatus;
import com.zhuimengren.test.mapper.DriverUserWorkStatusMapper;
import com.zhuimengren.test.service.IDriverUserWorkStatusService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author ZhuiMengRen
 * @since 2023-12-27
 */
@Service
public class DriverUserWorkStatusServiceImpl extends ServiceImpl<DriverUserWorkStatusMapper, DriverUserWorkStatus> implements IDriverUserWorkStatusService {

}
package com.zhuimengren.test.mapper;
import com.zhuimengren.test.entity.DriverUserWorkStatus;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ZhuiMengRen
 * @since 2023-12-27
 */
public interface DriverUserWorkStatusMapper extends BaseMapper<DriverUserWorkStatus> {

}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhuimengren.test.mapper.DriverUserWorkStatusMapper">

</mapper>
  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值