mybatis-plus3.5.2分页插件
时间: 2024-08-30 09:01:51 浏览: 128
Mybatis Plus是一个基于MyBatis的ORM(对象关系映射)工具,它为简化数据库操作提供了一套便捷的API和配置。在版本3.5.2中,它的分页插件(Pagination Plugin)允许开发者更方便地进行数据列表的获取和分页查询。
使用Mybatis Plus的分页插件,你可以通过简单的接口调用实现动态条件查询并自动处理分页。例如,通过`PageVo`对象和一些方法,如`BaseMapper.selectList(Page(page, size))`,其中`page`是分页对象,`size`是每页记录数。它会返回一个包含总记录数和当前页面数据的结果集。
此外,分页插件还支持自定义拦截器,对SQL语句进行预处理、缓存管理等高级功能。你还可以配置全局分页插件的行为,如设置默认的分页大小或者启用/禁用特定的分页策略。
相关问题
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代码,减少手动编写代码的工作量,提高开发效率。需要注意的是,生成的代码只是基础代码,需要根据具体业务进行修改和优化。
当前mybatis-plus版本是3.5.2
是的,当前的 MyBatis-Plus 版本是 3.5.2。MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上增加了许多实用的功能,如通用 Mapper、分页插件、性能分析插件等,大大提高了开发效率。同时,MyBatis-Plus 还是一个开源项目,具有高度可定制化和可扩展性,广泛应用于各种 Java Web 项目中。
阅读全文