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>