使用mybatis-generator生成的Example,快速分页查询模板代码

controller接口

/**
 * 分页列表查询
 *
 * @param pageNum  页号
 * @param pageSize 页面大小
 * @param sortType 排序
 * @return BaseResult
 */
@GetMapping(value = "/getCustomerByPage")
public BaseResult getCustomerByPage(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize, String sortType) {
	PageResult<Customer> pageResult = customerService.getCustomerByPage(pageNum, pageSize);
	return new BaseResult(200, "查询成功", pageResult.getData(), pageResult.getTotalCount());
}

serviceImpl实现

@Override
public PageResult<Customer> getCustomerByPage(Integer pageNum, Integer pageSize, String name) {
	CustomerExample example = new CustomerExample();
	example.setOrderByClause(" update_time desc");
	CustomerExample.Criteria criteria = example.createCriteria();

	// TODO 处理查询逻辑
	if (StringUtils.isNotEmpty(name)) {
		criteria.andNameLike("%" + name + "%");
	}
	//计算总数
	int totalCount = customerMapper.countByExample(example);
	if (pageSize != null && pageNum != null) {
		example.setLimitStart((pageNum - 1) * pageSize);
		example.setLimitEnd(pageSize);
	}
	//分页查询
	List<Customer> list = customerMapper.selectByExample(example);

	return new PageResult<>(totalCount, list);
}

PageResult

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageResult<T> {
    int totalCount;
    List<T> data;
}

 

MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上进行了扩展,提供了许多实用的功能,如分页、性能分析等。而MyBatis-Plus GeneratorMyBatis-Plus的代码生成器,可以根据数据库表自动生成对应的Java文件。 MyBatis-Plus Generator默认生成Java文件包括实体类、Mapper接口、Mapper XML文件、Service接口、ServiceImpl实现类。但是,有时我们需要生成其他类型的Java文件,比如DTO、VO、Convertor等。这时候,我们可以通过自定义模板来实现。 以下是自定义模板生成DTO、VO、Convertor的步骤: 1. 修改MyBatis-Plus Generator配置文件 在MyBatis-Plus Generator配置文件中,找到table的配置项,添加以下两个配置项: ```xml <table schema="" tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <!-- 自定义模板路径 --> <property name="dtoTargetPackage" value="com.example.demo.dto"/> <property name="dtoTargetProject" value="src/main/java"/> <property name="voTargetPackage" value="com.example.demo.vo"/> <property name="voTargetProject" value="src/main/java"/> <property name="convertorTargetPackage" value="com.example.demo.convertor"/> <property name="convertorTargetProject" value="src/main/java"/> </table> ``` 其中,dtoTargetPackage、dtoTargetProject分别表示DTO类的包名和生成路径;voTargetPackage、voTargetProject分别表示VO类的包名和生成路径;convertorTargetPackage、convertorTargetProject分别表示Convertor类的包名和生成路径。 2. 编写自定义模板MyBatis-Plus Generator配置文件中,找到context的配置项,添加以下三个配置项: ```xml <context id="default" targetRuntime="MyBatis3"> <!-- 自定义模板 --> <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" /> <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <plugin type="com.github.chitgoksar.mybatismbplus.generator.plugins.DtoPlugin" /> <plugin type="com.github.chitgoksar.mybatismbplus.generator.plugins.VoPlugin" /> <plugin type="com.github.chitgoksar.mybatismbplus.generator.plugins.ConvertorPlugin" /> </context> ``` 其中,DtoPlugin、VoPlugin、ConvertorPlugin分别表示生成DTO、VO、Convertor类的插件。 接着,创建相应的模板文件,如下: DTO模板: ```java package ${dtoPackage}; import lombok.Data; @Data public class ${dtoName} { // TODO: 添加DTO属性 } ``` VO模板: ```java package ${voPackage}; import lombok.Data; @Data public class ${voName} { // TODO: 添加VO属性 } ``` Convertor模板: ```java package ${convertorPackage}; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import ${entityPackage}.${entityName}; import ${dtoPackage}.${dtoName}; import ${voPackage}.${voName}; @Mapper public interface ${convertorName} { ${convertorName} INSTANCE = Mappers.getMapper(${convertorName}.class); ${dtoName} toDto(${entityName} entity); ${entityName} toEntity(${dtoName} dto); ${voName} toVo(${entityName} entity); } ``` 其中,${dtoPackage}、${voPackage}、${convertorPackage}分别表示生成的DTO、VO、Convertor类的包名;${dtoName}、${voName}、${convertorName}、${entityName}分别表示生成的类名和实体类名。 3. 运行MyBatis-Plus GeneratorMyBatis-Plus Generator配置文件中,找到generator的配置项,运行MyBatis-Plus Generator即可生成相应的Java文件。 ```xml <generatorConfiguration> <!-- 配置数据源 --> <dataSource type="com.alibaba.druid.pool.DruidDataSource"> <!-- 数据库连接配置 --> </dataSource> <!-- 配置生成Java文件 --> <context id="default" targetRuntime="MyBatis3"> <!-- 自定义模板 --> <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" /> <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <plugin type="com.github.chitgoksar.mybatismbplus.generator.plugins.DtoPlugin" /> <plugin type="com.github.chitgoksar.mybatismbplus.generator.plugins.VoPlugin" /> <plugin type="com.github.chitgoksar.mybatismbplus.generator.plugins.ConvertorPlugin" /> </context> </generatorConfiguration> ``` 通过以上步骤,我们可以自定义模板生成DTO、VO、Convertor等Java文件,提高开发效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值