-
0x01_创建项目+添加依赖和配置
-
0x02_代码生成
mybatis-plus_代码生成器(简单介绍)
官网关于代码生成器的链接:https://baomidou.com/pages/779a6e/
在官网中mybatis-plus分成代码生成器(新)
和代码生成器(旧)
两个标签页。本篇只集中于记录代码生成器(新)
的学习过程。
再推荐B站上的几个视频:https://space.bilibili.com/483260422
0x01_创建项目+添加依赖和配置


(后面我将spring boot版本设置成了2.7.4)


添加依赖和配置
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.13</version>
</dependency>
<!-- jdbc依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 代码生成器的依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.4</version>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
为了避免无法避免的错误,每一次我都会调整maven的JDK for Importer

0x02_代码生成
创建一个类,准备生成代码:
生成代码的代码在官网有,但是需要更改连接数据库的url,username,password,以及输出目录,mapperXml生成路径,需要生成的表名,过滤表前缀:(我将我的提供在下)
package com.bones.mp_gene.demo.config;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.Collections;
/**
* @author : bones
* @version : 1.0
*/
public class MyFastAutoGenerator {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true"
, "你的数据库username", "你的数据库密码")
.globalConfig(builder -> {
builder.author("bones") // 设置作者
//.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("/Users/apple/Documents/ideaProject/MyBatisPlusOut"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.bones.mp_gene") // 设置父包名
.moduleName("system") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, "/Users/apple/Documents/ideaProject/")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("t_user") // 设置需要生成的表名
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
生成时,会自动弹出:

生成的controller/UserController
package com.bones.mp_gene.system.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
/**
* <p>
* 前端控制器
* </p>
*
* @author bones
* @since 2022-10-24
*/
@Controller
@RequestMapping("/system/user")
public class UserController {
}
entity/User
package com.bones.mp_gene.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author bones
* @since 2022-10-24
*/
@TableName("t_user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
private Long uid;
/**
* 姓名
*/
private String firstname;
/**
* 年龄
*/
private Integer age;
/**
* 邮箱
*/
private String email;
private Integer isDeleted;
public Long getUid() {
return uid;
}
public void setUid(Long uid) {
this.uid = uid;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Integer getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(Integer isDeleted) {
this.isDeleted = isDeleted;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", firstname=" + firstname +
", age=" + age +
", email=" + email +
", isDeleted=" + isDeleted +
"}";
}
}
mapper/UserMapper
package com.bones.mp_gene.system.mapper;
import com.bones.mp_gene.system.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author bones
* @since 2022-10-24
*/
public interface UserMapper extends BaseMapper<User> {
}
service/IUserService
package com.bones.mp_gene.system.service;
import com.bones.mp_gene.system.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author bones
* @since 2022-10-24
*/
public interface IUserService extends IService<User> {
}
service/impl/UserServiceImpl
package com.bones.mp_gene.system.service.impl;
import com.bones.mp_gene.system.entity.User;
import com.bones.mp_gene.system.mapper.UserMapper;
import com.bones.mp_gene.system.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author bones
* @since 2022-10-24
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
}
原文始发于微信公众号(小东方不败):mybatis-plus_代码生成器(简单介绍)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/47155.html