MybatisPlus 代码生成器
1、导入依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency>
2、快速生成代码模板
public static void main(String[] args) { FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/test? characterEncoding=utf-8&userSSL=false", "username", "password") .globalConfig(builder -> { builder.author("xiaobing") // 设置作者 // .enableSwagger() // 开启 swagger 模式 .fileOverride() // 覆盖已生成文件 .outputDir("C:\\Users\\Administrator\\Desktop\\mybatis_plus"); // 指定输出目录 }) .packageConfig(builder -> { builder.parent("com.xiaobing") // 设置父包名 .moduleName("mybatisplus") // 设置父包模块名 .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "C:\\Users\\Administrator\\Desktop\\mybatis_plus")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder .addInclude("t_user") // 设置需要生成的表名 .addTablePrefix("t_", "c_"); // 设置过滤表前缀 }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker 引擎模板,默认的是Velocity引擎模板 .execute(); }
3、前提当前数据库test已经存在t_user表:
create table t_user ( uid bigint auto_increment comment '主键ID' primary key, user_name varchar(40) null comment '姓名', age int null comment '年龄', email varchar(40) null comment '邮箱', sex int null, is_deleted int default 0 null );
4、执行
15:56:20.877 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================准备生成文件...========================== 15:56:21.333 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show table status WHERE 1=1 AND NAME IN ('t_user') 15:56:21.372 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 返回记录数:1,耗时(ms):37 15:56:21.422 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show full fields from `t_user` 15:56:21.435 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 返回记录数:6,耗时(ms):12 15:56:21.831 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================文件生成完成!!!==========================
5、查看生成文件
UserMapper.xml
<?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.xiaobing.mybatisplus.mapper.UserMapper"> </mapper>
User.java
package com.xiaobing.mybatisplus.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; /** * <p> * * </p> * * @author xiaobing * @since 2022-09-14 */ @TableName("t_user") public class User implements Serializable { private static final long serialVersionUID = 1L; /** * 主键ID */ @TableId(value = "uid", type = IdType.AUTO) private Long uid; /** * 姓名 */ private String userName; /** * 年龄 */ private Integer age; /** * 邮箱 */ private String email; private Integer sex; private Integer isDeleted; public Long getUid() { return uid; } public void setUid(Long uid) { this.uid = uid; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } 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 getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public Integer getIsDeleted() { return isDeleted; } public void setIsDeleted(Integer isDeleted) { this.isDeleted = isDeleted; } @Override public String toString() { return "User{" + "uid=" + uid + ", userName=" + userName + ", age=" + age + ", email=" + email + ", sex=" + sex + ", isDeleted=" + isDeleted + "}"; } }
UserMapper.java
package com.xiaobing.mybatisplus.mapper; import com.xiaobing.mybatisplus.entity.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * Mapper 接口 * </p> * * @author xiaobing * @since 2022-09-14 */ public interface UserMapper extends BaseMapper<User> { }
IUserService.java
package com.xiaobing.mybatisplus.service; import com.xiaobing.mybatisplus.entity.User; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 服务类 * </p> * * @author xiaobing * @since 2022-09-14 */ public interface IUserService extends IService<User> { }
UserServiceImpl.java
package com.xiaobing.mybatisplus.service.impl; import com.xiaobing.mybatisplus.entity.User; import com.xiaobing.mybatisplus.mapper.UserMapper; import com.xiaobing.mybatisplus.service.IUserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author xiaobing * @since 2022-09-14 */ @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService { }
UserController.java
package com.xiaobing.mybatisplus.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.stereotype.Controller; /** * <p> * 前端控制器 * </p> * * @author xiaobing * @since 2022-09-14 */ @Controller @RequestMapping("/mybatisplus/user") public class UserController { }