<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
<!--common引入-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--其他微服务引入common->
<dependency>
<groupId>net.xiaochan</groupId>
<artifactId>xicoahan-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--如果是单体项目不是微服务项目,则直接添加即可-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
常见注解
使用方法 在类上注释 @Slf4j
log.info{}
<dependencies>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Mybatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.x.x</version><!-- 使用最新版本,根据你的需求替换x为具体版本号 例如 3.4.0 -->
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 其他依赖... -->
</dependencies>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>gpt-test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.5.3</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -->
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.2.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis plus和springboot整合-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.yopai.App</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Mybatis-plus-generator(Mybatis-Plus 代码生成器)是 Mybatis-Plus 的一个子模块,作用是根据数据库表结构自动生成对应的实体类、Mapper接口、Mapper映射文件和Service接口等代码。它大大简化了开发者的工作量,提高了开发效率。
以下是关于 Mybatis-plus-generator 的一些介绍
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!-- velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
server.port=3008
spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username =root
spring.datasource.password =xxxx
public class MyBatisPlusGenerator {
public static void main(String[] args) {
//1. 全局配置
GlobalConfig config = new GlobalConfig();
// 是否支持AR模式
config.setActiveRecord(true)
// 作者
.setAuthor("xiaochan")
// 生成路径,最好使用绝对路径,window路径是不一样的 这里方便自己粘贴复制 所以不直接生成在项目文件
.setOutputDir("C:/Users/MI/Desktop/demo/src/main/java")
// 文件覆盖
.setFileOverride(true)
// 主键策略
.setIdType(IdType.AUTO)
.setDateType(DateType.ONLY_DATE)
// 设置生成的service接口的名字的首字母是否为I,默认Service是以I开头的
.setServiceName("%sService")
//实体类结尾名称
.setEntityName("%sDO")
//生成基本的resultMap
.setBaseResultMap(true)
//不使用AR模式
.setActiveRecord(false)
//生成基本的SQL片段
.setBaseColumnList(true);
//2. 数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
// 设置数据库类型
dsConfig.setDbType(DbType.MYSQL)
.setDriverName("com.mysql.cj.jdbc.Driver")
//TODO TODO TODO TODO
.setUrl("jdbc:mysql://127.0.0.1:3306/user?useSSL=false&serverTimezone=UTC")
.setUsername("用户名")
.setPassword("密码");
//3. 策略配置globalConfiguration中
StrategyConfig stConfig = new StrategyConfig();
//全局大写命名
stConfig.setCapitalMode(true)
// 数据库表映射到实体的命名策略
.setNaming(NamingStrategy.underline_to_camel)
//使用lombok
.setEntityLombokModel(true)
//使用restcontroller注解
.setRestControllerStyle(true)
// 生成的表, 支持多表一起生成,以数组形式填写
.setInclude("user","address");
//4. 包名策略配置
PackageConfig pkConfig = new PackageConfig();
pkConfig.setParent("net.xiaochan")
.setMapper("mapper")
.setService("service")
.setController("controller")
.setEntity("model")
.setXml("mapper");
//5. 整合配置
AutoGenerator ag = new AutoGenerator();
ag.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(stConfig)
.setPackageInfo(pkConfig);
//6. 执行操作
ag.execute();
System.out.println("=======Done 相关代码生成完毕 ========");
}
}
@RestController
@RequestMapping("/addressDO")
public class AddressController {
}
@RestController
@RequestMapping("/userDO")
public class UserController {
}
public interface AddressMapper extends BaseMapper<AddressDO> {
}
public interface UserMapper extends BaseMapper<UserDO> {
}
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("address")
public class AddressDO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 是否默认收货地址:0->否;1->是
*/
private Integer defaultStatus;
/**
* 收发货人姓名
*/
private String receiveName;
/**
* 收货人电话
*/
private String phone;
/**
* 省/直辖市
*/
private String province;
/**
* 市
*/
private String city;
/**
* 区
*/
private String region;
/**
* 详细地址
*/
private String detailAddress;
private Date createTime;
}
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user")
public class UserDO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 昵称
*/
private String name;
/**
* 密码
*/
private String pwd;
/**
* 头像
*/
private String headImg;
/**
* 用户签名
*/
private String slogan;
/**
* 0表示女,1表示男
*/
private Integer sex;
/**
* 积分
*/
private Integer points;
private Date createTime;
/**
* 邮箱
*/
private String mail;
/**
* 盐,用于个人敏感信息处理
*/
private String secret;
}
<mapper namespace="net.xdclass.mapper.UserMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="net.xdclass.model.UserDO">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="pwd" property="pwd" />
<result column="head_img" property="headImg" />
<result column="slogan" property="slogan" />
<result column="sex" property="sex" />
<result column="points" property="points" />
<result column="create_time" property="createTime" />
<result column="mail" property="mail" />
<result column="secret" property="secret" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, name, pwd, head_img, slogan, sex, points, create_time, mail, secret
</sql>
</mapper>
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="net.xdclass.model.AddressDO">
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="default_status" property="defaultStatus" />
<result column="receive_name" property="receiveName" />
<result column="phone" property="phone" />
<result column="province" property="province" />
<result column="city" property="city" />
<result column="region" property="region" />
<result column="detail_address" property="detailAddress" />
<result column="create_time" property="createTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, user_id, default_status, receive_name, phone, province, city, region, detail_address, create_time
</sql>
</mapper>