小前端闲来无事接触接触JAVA,刚学了下Spring,打算采用JPA去开发,后面了解到了Mybatis-Plus的快乐之处,就想把心得分享一下,这里有些是借鉴别人的地方。
首先引入依赖
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<!-- 添加 模板引擎 依赖 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
然后maven执行包下载操作,等包下载完成后,在test测试下新建一个代码生成器测试类TextCodeGenerate,这里自己随便命名,然后就开始写一个静态方法,先默认构造对象AutoGenerator
AutoGenerator auto = new AutoGenerator();
接着,进行第一步:全局配置
// 全局配置
GlobalConfig glob = new GlobalConfig();
// 填写代码生成的目录 (需要修改)
String projectPath = "E:\\JavaBook\\spring-mybatisPlus-study";
// 拼接出代码最终输出的目录
glob.setOutputDir(projectPath + "/src/main/java");
// 配置开发者信息 (可选) (需要修改)
glob.setAuthor("sumer");
// 配置是否打开目录 false 为不打开 (可选)
glob.setOpen(false);
// 重新生成文件时是否覆盖(重要) (可选)
glob.setFileOverride(true);
// 配置文件生成策略 此处为 ASSIGN_ID (可选)
glob.setIdType(IdType.ASSIGN_ID);
// 配置日期类型 此处为 ONLY_DATE (可选)
glob.setDateType(DateType.ONLY_DATE);
// 默认生成service 会有I前缀
glob.setServiceName("%sService");
auto.setGlobalConfig(glob);
接着实行第二部操作:数据源配置
// 数据源配置 (需要修改)
DataSourceConfig data = new DataSourceConfig();
// 配置数据库url 地址
data.setUrl("jdbc:mysql://localhost:3306/sumerPlus?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai");
// 配置数据库驱动
data.setDriverName("com.mysql.cj.jdbc.Driver");
// 配置数据库连接用户名
data.setUsername("root");
// 配置数据库链接密码
data.setPassword("123456");
auto.setDataSource(data);
然后,进行第三步:包配置
// 包配置 (需要修改)
PackageConfig pack = new PackageConfig();
// 配置父包名
pack.setParent("com.sumer");
// 配置模块名
pack.setModuleName("");
// 配置 entity 包名
pack.setEntity("entity");
// 配置 mapper 包名
pack.setMapper("mapper");
// 配置 service 包名
pack.setService("service");
// 配置 controller 包名
pack.setController("controller");
auto.setPackageInfo(pack);
其次,还需要对数据库进行一些映射操作:策略配置
// 策略配置(数据库表配置)
StrategyConfig sql = new StrategyConfig();
// 指定表名(可指定多个表名,用,分隔开来)(添加数据库表)
sql.setInclude("user","job");
// 配置数据表与实体类名之间映射的策略
sql.setNaming(NamingStrategy.underline_to_camel);
// 配置数据库表的字段与实体类的属性名之间的映射的策略
sql.setColumnNaming(NamingStrategy.underline_to_camel);
// 配置 lombok 模式
sql.setEntityLombokModel(true);
// 配置 rest 风格的控制器 (@RestController)
sql.setRestControllerStyle(true);
// 配置驼峰转连字符
sql.setControllerMappingHyphenStyle(true);
// 配置表名前缀,生成实体时去除表前缀
sql.setTablePrefix("");
auto.setStrategy(sql);
最终,执行代码生成命令
auto.execute();
整个代码
package com.sumer;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
public class TextCodeGenerate { // 代码生成器测试类
@Test
void autoGenerate(){
// 代码生成器
AutoGenerator auto = new AutoGenerator();
// 全局配置
GlobalConfig glob = new GlobalConfig();
// 填写代码生成的目录 (需要修改)
String projectPath = "E:\\JavaBook\\spring-mybatisPlus-study";
// 拼接出代码最终输出的目录
glob.setOutputDir(projectPath + "/src/main/java");
// 配置开发者信息 (可选) (需要修改)
glob.setAuthor("sumer");
// 配置是否打开目录 false 为不打开 (可选)
glob.setOpen(false);
// 重新生成文件时是否覆盖(重要) (可选)
glob.setFileOverride(true);
// 配置文件生成策略 此处为 ASSIGN_ID (可选)
glob.setIdType(IdType.ASSIGN_ID);
// 配置日期类型 此处为 ONLY_DATE (可选)
glob.setDateType(DateType.ONLY_DATE);
// 默认生成service 会有I前缀
glob.setServiceName("%sService");
auto.setGlobalConfig(glob);
// 数据源配置 (需要修改)
DataSourceConfig data = new DataSourceConfig();
// 配置数据库url 地址
data.setUrl("jdbc:mysql://localhost:3306/sumerPlus?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai");
// 配置数据库驱动
data.setDriverName("com.mysql.cj.jdbc.Driver");
// 配置数据库连接用户名
data.setUsername("root");
// 配置数据库链接密码
data.setPassword("123456");
auto.setDataSource(data);
// 包配置 (需要修改)
PackageConfig pack = new PackageConfig();
// 配置父包名
pack.setParent("com.sumer");
// 配置模块名
pack.setModuleName("");
// 配置 entity 包名
pack.setEntity("entity");
// 配置 mapper 包名
pack.setMapper("mapper");
// 配置 service 包名
pack.setService("service");
// 配置 controller 包名
pack.setController("controller");
auto.setPackageInfo(pack);
// 策略配置(数据库表配置)
StrategyConfig sql = new StrategyConfig();
// 指定表名(可指定多个表名,用,分隔开来)(添加数据库表)
sql.setInclude("user","job");
// 配置数据表与实体类名之间映射的策略
sql.setNaming(NamingStrategy.underline_to_camel);
// 配置数据库表的字段与实体类的属性名之间的映射的策略
sql.setColumnNaming(NamingStrategy.underline_to_camel);
// 配置 lombok 模式
sql.setEntityLombokModel(true);
// 配置 rest 风格的控制器 (@RestController)
sql.setRestControllerStyle(true);
// 配置驼峰转连字符
sql.setControllerMappingHyphenStyle(true);
// 配置表名前缀,生成实体时去除表前缀
sql.setTablePrefix("");
auto.setStrategy(sql);
// 执行代码生成操作
auto.execute();
}
}
这个时候,你会看到这样子
这个时候,自动化配置就好了,最后,记得在执行程序入口处添加mapper路径,指定要变成实现类的接口所在的包
这时候,就能快乐的去进行后端编写了!