MyBatis-Plus反向代码生成器、
时间: 2024-01-06 14:04:10 浏览: 41
好的,你想了解关于MyBatis-Plus反向代码生成器的相关信息吗?
MyBatis-Plus是MyBatis的增强工具包,提供了很多便捷的操作,其中之一就是反向代码生成器。反向代码生成器可以根据数据库表生成对应的Java实体类、Mapper接口、Service接口、ServiceImpl实现类等代码文件,极大地提高了开发效率。
使用MyBatis-Plus反向代码生成器,你只需要配置好数据库连接信息和相关参数,就能生成对应的代码文件。同时,MyBatis-Plus还提供了很多自定义配置的选项,可以根据需求灵活定制生成的代码文件。
需要注意的是,反向代码生成器只是生成代码的工具,生成的代码需要根据实际需求进行调整和完善。此外,反向代码生成器也不能完全取代手写代码的方式,需要开发者根据具体情况进行选择和使用。
相关问题
mybatis-plus3.5.1代码生成器
MyBatis-Plus 3.5.1 代码生成器是 MyBatis-Plus 框架提供的一款代码生成工具,可以帮助开发者快速生成 MyBatis-Plus 的 Mapper 接口及其 XML 映射文件、Service 接口、ServiceImpl 实现类、Entity 实体类等代码。
使用 MyBatis-Plus 代码生成器,可以减轻开发者的工作负担,提高开发效率,避免手写重复性的代码。以下是使用 MyBatis-Plus 代码生成器的步骤:
1. 引入 MyBatis-Plus 依赖
在项目的 pom.xml 文件中,添加 MyBatis-Plus 的依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.5.1</version>
</dependency>
```
2. 配置代码生成器
在项目的配置文件(如 application.yml 或 application.properties)中,添加代码生成器的配置信息,包括数据库连接信息、生成代码的包路径、作者等信息。
```
mybatis-plus:
global-config:
db-config:
# 数据库配置
url: jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
driver-name: com.mysql.cj.jdbc.Driver
generator:
# 生成代码的包路径
package-name: com.example.mybatisplusdemo
# 生成代码的作者
author: example
# 开启生成器
enable: true
# 开启实体类 Lombok 注解
enable-lombok: true
# 开启 Swagger2 注解
enable-swagger: true
# 开启 ActiveRecord 模式(生成 ActiveRecord 的实体类和接口)
enable-activerecord: true
```
3. 运行代码生成器
在项目的启动类中,添加以下代码,启动代码生成器:
```
@SpringBootApplication
public class MybatisPlusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusDemoApplication.class, args);
// 启动代码生成器
MybatisPlusGenerator.execute();
}
}
```
4. 查看生成的代码
代码生成器会根据配置信息,自动生成 Mapper 接口及其 XML 映射文件、Service 接口、ServiceImpl 实现类、Entity 实体类等代码,生成的代码位于指定的包路径下。开发者可以在生成的代码的基础上,进行业务代码的开发。
mybatis-plus3.5.2代码生成器
MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上进行了扩展,提供了更加便捷的CRUD操作、分页、乐观锁、逻辑删除等功能。而MyBatis-Plus的代码生成器则是MyBatis-Plus中的一个子模块,用于生成基于MyBatis-Plus的CRUD代码。
MyBatis-Plus的代码生成器是一个基于Velocity模板引擎的代码生成器,支持生成Java、XML、SQL脚本等文件。使用MyBatis-Plus的代码生成器可以快速生成CRUD代码,减少手动编写代码的工作量。
下面是使用MyBatis-Plus3.5.2代码生成器生成代码的步骤:
1. 添加MyBatis-Plus的依赖
在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
```
2. 编写代码生成器配置文件
在src/main/resources目录下创建generator.properties文件,编写代码生成器的配置信息,例如:
```properties
# 数据库配置
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=root
# 代码生成器配置
outputDir=D:/code-generator
author=MyBatis-Plus
fileOverride=true
openDir=false
```
其中,jdbc.driver、jdbc.url、jdbc.username、jdbc.password是数据库的配置信息,outputDir是生成文件的输出目录,author是代码的作者,fileOverride是是否覆盖已有文件,openDir是是否打开输出目录。
3. 编写代码生成器模板文件
在src/main/resources/templates目录下创建模板文件,例如entity.java.vm、mapper.xml.vm、service.java.vm、serviceImpl.java.vm等,编写模板文件的内容。
模板文件中使用Velocity的语法,可以使用变量、条件语句、循环语句等,例如:
```java
package ${packageName};
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* ${tableComment}
*/
@Data
@TableName("${tableName}")
public class ${entityName} {
#foreach($column in $table.columns)
/**
* ${column.columnComment}
*/
private ${column.javaType} ${column.fieldName};
#end
}
```
在模板文件中,$packageName、$tableComment、$tableName、$entityName、$table.columns等都是变量,会根据生成器配置文件和数据库表的信息动态替换为具体的值。
4. 运行代码生成器
编写好配置文件和模板文件后,就可以运行代码生成器了。在Java代码中使用CodeGenerator类,并传入配置文件和模板文件的路径,即可启动代码生成器,例如:
```java
public class MybatisPlusGenerator {
public static void main(String[] args) {
String configFile = "generator.properties";
String templatePath = "/templates/%s.vm";
AutoGenerator generator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setAuthor(PropertyUtil.getProperty(configFile, "author"));
globalConfig.setFileOverride(Boolean.parseBoolean(PropertyUtil.getProperty(configFile, "fileOverride")));
globalConfig.setOpen(Boolean.parseBoolean(PropertyUtil.getProperty(configFile, "openDir")));
globalConfig.setOutputDir(PropertyUtil.getProperty(configFile, "outputDir"));
generator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setDriverName(PropertyUtil.getProperty(configFile, "jdbc.driver"));
dataSourceConfig.setUrl(PropertyUtil.getProperty(configFile, "jdbc.url"));
dataSourceConfig.setUsername(PropertyUtil.getProperty(configFile, "jdbc.username"));
dataSourceConfig.setPassword(PropertyUtil.getProperty(configFile, "jdbc.password"));
generator.setDataSource(dataSourceConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent(PropertyUtil.getProperty(configFile, "package"));
generator.setPackageInfo(packageConfig);
// 自定义配置
InjectionConfig injectionConfig = new InjectionConfig() {
@Override
public void initMap() {
}
};
injectionConfig.setFileOutConfigList(getFileOutConfigList(templatePath));
generator.setCfg(injectionConfig);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setXml(null);
generator.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setRestControllerStyle(true);
strategyConfig.setInclude(PropertyUtil.getProperty(configFile, "tableNames").split(","));
generator.setStrategy(strategyConfig);
generator.execute();
}
private static List<FileOutConfig> getFileOutConfigList(String templatePath) {
List<FileOutConfig> fileOutConfigList = new ArrayList<>();
fileOutConfigList.add(new FileOutConfig(templatePath) {
@Override
public String outputFile(TableInfo tableInfo) {
return String.format("%s/%s%s", PropertyUtil.getProperty("generator.properties", "outputDir"),
tableInfo.getEntityName(), this.getSuffix());
}
});
return fileOutConfigList;
}
}
```
在代码中,使用AutoGenerator类配置全局配置、数据源配置、包配置、自定义配置、模板配置、策略配置等,然后调用execute()方法即可生成代码。
总结:使用MyBatis-Plus的代码生成器可以快速生成基于MyBatis-Plus的CRUD代码,减少手动编写代码的工作量,提高开发效率。需要注意的是,生成的代码只是基础代码,需要根据具体业务进行修改和优化。