当前位置:实例文章 » 其他实例» [文章]基于Mybatis-Plus的代码自动生成器

基于Mybatis-Plus的代码自动生成器

发布人:shili8 发布时间:2025-01-05 11:18 阅读次数:0

**基于Mybatis-Plus的代码自动生成器**

在软件开发过程中,重复性的代码生成工作是非常常见的。例如,在使用Mybatis-Plus作为持久层框架时,我们需要手动编写Mapper接口、Entity类和Service类等,这些工作虽然简单,但也会浪费大量时间。

本文将介绍如何基于Mybatis-Plus开发一个代码自动生成器,能够自动化生成Mapper接口、Entity类和Service类等。这个工具可以大大提高开发效率,并且减少错误的可能性。

**工具功能**

我们的代码自动生成器支持以下功能:

* 自动生成Mapper接口* 自动生成Entity类* 自动生成Service类**工具实现**

我们将使用Java语言来实现这个工具。首先,我们需要在pom.xml文件中添加Mybatis-Plus和其他依赖。

xml<dependencies>
 <dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-boot-starter</artifactId>
 <version>3.4.1</version>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 <version>2.5.6</version>
 </dependency>
 <dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-generator</artifactId>
 <version>3.4.1</version>
 </dependency>
</dependencies>


然后,我们需要创建一个配置类来配置工具的参数。

java@Configurationpublic class GeneratorConfig {
 @Value("${generator.entityPackage}")
 private String entityPackage;
 @Value("${generator.mapperPackage}")
 private String mapperPackage;
 @Value("${generator.servicePackage}")
 private String servicePackage;
 @Bean public ConfigurationCustomizer mybatisPlusConfigurationCustomizer() {
 return new MybatisPlusConfigurationCustomizer();
 }
}


接下来,我们需要创建一个Mybatis-Plus配置类来配置工具的参数。

java@Configurationpublic class MybatisPlusConfig {
 @Bean public Configuration configuration() {
 Configuration conf = new Configuration();
 conf.setMapStructInstance(true);
 return conf;
 }
}


然后,我们需要创建一个代码生成器类来实现工具的功能。

java@Componentpublic class CodeGenerator implements InitializingBean {
 private String entityPackage;
 private String mapperPackage;
 private String servicePackage;
 @Value("${generator.entityPackage}")
 public void setEntityPackage(String entityPackage) {
 this.entityPackage = entityPackage;
 }
 @Value("${generator.mapperPackage}")
 public void setMapperPackage(String mapperPackage) {
 this.mapperPackage = mapperPackage;
 }
 @Value("${generator.servicePackage}")
 public void setServicePackage(String servicePackage) {
 this.servicePackage = servicePackage;
 }
 @Override public void afterPropertiesSet() throws Exception {
 //生成Entity类 EntityGenerator entityGenerator = new EntityGenerator();
 entityGenerator.setEnableCache(false);
 entityGenerator.setEnableLombok(true);
 entityGenerator.setEnableSqlFilter(false);
 entityGenerator.setTable(new TableInfo("user", "id"));
 entityGenerator.setPackageInfo(new PackageInfo(entityPackage));
 entityGenerator.execute();
 //生成Mapper接口 MapperGenerator mapperGenerator = new MapperGenerator();
 mapperGenerator.setEnableCache(false);
 mapperGenerator.setEnableSqlFilter(false);
 mapperGenerator.setTable(new TableInfo("user", "id"));
 mapperGenerator.setPackageInfo(new PackageInfo(mapperPackage));
 mapperGenerator.execute();
 //生成Service类 ServiceGenerator serviceGenerator = new ServiceGenerator();
 serviceGenerator.setEnableCache(false);
 serviceGenerator.setEnableSqlFilter(false);
 serviceGenerator.setTable(new TableInfo("user", "id"));
 serviceGenerator.setPackageInfo(new PackageInfo(servicePackage));
 serviceGenerator.execute();
 }
}


最后,我们需要在application.properties文件中配置工具的参数。

propertiesgenerator.entityPackage=com.example.entitygenerator.mapperPackage=com.example.mappergenerator.servicePackage=com.example.service


**示例代码**

下面是生成的Entity类、Mapper接口和Service类的示例代码:

### Entity类
javapackage com.example.entity;

import lombok.Data;
import java.util.Date;

/**
 * *
 * @author [Your Name]
 * @since [Creation Date]
 */
@Datapublic class User {
 private Long id;
 private String name;
 private Integer age;
 private Date createTime;
}


### Mapper接口
javapackage com.example.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

/**
 * *
 * @author [Your Name]
 * @since [Creation Date]
 */
@Mapper@Repositorypublic interface UserMapper extends BaseMapper {
}


### Service类
javapackage com.example.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * *
 * @author [Your Name]
 * @since [Creation Date]
 */
@Servicepublic class UserServiceImpl extends ServiceImpl implements IUserService {
 @Override public List selectList() {
 return this.list();
 }
}


**总结**

本文介绍了如何基于Mybatis-Plus开发一个代码自动生成器,能够自动化生成Mapper接口、Entity类和Service类等。这个工具可以大大提高开发效率,并且减少错误的可能性。

希望通过阅读本文,你会对如何使用Mybatis-Plus进行代码自动生成有所了解,并能在实际项目中应用这种技术。

相关标签:
其他信息

其他资源

Top