#maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!-- MyBatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
</dependency>
<!--db shareding-->
代码
/**
-
数据库配置
-
@author liuzihao27
-
@date 2021/8/25 23:50
**/
@Slf4j
@Configuration
public class DruidDataConfig {@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}/**
- 分库分表路由规则
/
@Value(“${db.sharding.route:route.xml}”)
private String dbShardingRoute;
/* - 分页查询配置
- com.github.pagehelper.PageInterceptor
*/
@Value(“${db.page.helper:mysql}”)
private String helperDialect;
@Bean
public ShardingInterceptor shardingInterceptor() throws IOException {
log.info(“—初始化【ShardingInterceptor】开始—”);
ShardingInterceptor shardingInterceptor = new ShardingInterceptor();
Properties properties = new Properties();
properties.setProperty(“helperDialect”, helperDialect);
log.info(“—初始化【ShardingInterceptor】3—参数:{}”, helperDialect);
properties.setProperty(“configLocation”, dbShardingRoute);
log.info(“—初始化【ShardingInterceptor】4—参数:{}”, dbShardingRoute); - 分库分表路由规则
// properties.load(DruidDataConfig.class.getClassLoader().getResourceAsStream(“sharding.properties”));
shardingInterceptor.setProperties(properties);
log.info(“—初始化【ShardingInterceptor】结束—”);
return shardingInterceptor;
}
}
/**
-
分页转换
-
@author liuzihao27
-
@email liuzihao27@jd.com
-
@date 2021-10-12 15:08
/
public class PageConvertUtil {
/*- 转换分页列表
**/
public static <T, P> PageResponse convert(IPage iPage, Classclazz) {
List tList = iPage.getRecords();
if (CollectionUtil.isEmpty(tList)) {
return convert2PageResponse(iPage);
}
Listresult = tList.stream().map(ele -> BeanUtil.convert(ele, clazz)).collect(Collectors.toList());
iPage.setRecords(result);
return convert2PageResponse(iPage);
}
/**
- 转换分页列表
**/
public static PageResponse convert2PageResponse(IPage iPage) {
return BeanUtil.convert(iPage, new PageResponse());
}
/**
- 转换pageRequest为Page
**/
public static IPage convert2PageRequest(T pageRequest) {
Page page = new Page();
page.setCurrent(pageRequest.getPageNo());
page.setSize(pageRequest.getPageSize());
List orderItemList = pageRequest.getOrders();
if (CollectionUtil.isNotEmpty(orderItemList)) {
List<com.baomidou.mybatisplus.core.metadata.OrderItem> orderItems = orderItemList.stream().filter(ele -> StringUtil.isNotBlank(ele.getColumn())).map(ele -> {
com.baomidou.mybatisplus.core.metadata.OrderItem orderItem = new com.baomidou.mybatisplus.core.metadata.OrderItem();
orderItem.setColumn(ele.getColumn());
orderItem.setAsc(ele.isAsc());
return orderItem;
}).collect(Collectors.toList());
page.setOrders(orderItems);
}
return page;
}
}
- 转换分页列表