欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > Mybatis Plus连接使用ClickHouse也如此简单

Mybatis Plus连接使用ClickHouse也如此简单

2024/10/23 15:24:58 来源:https://blog.csdn.net/weixin_53132064/article/details/142883562  浏览:    关键词:Mybatis Plus连接使用ClickHouse也如此简单

通过阅读列式数据库ClickHouse官网,不难看出它有支持JDBC规范的驱动jar包,可以直接集成到Object Relational Mapping框架等,下面我用SpringBoot+MybatisPlus环境连接ClickHouse来演示一下

集成步骤

1.Maven引入ClickHouse提供的JDBC依赖

<!--   ClickHouse JDBC 依赖    --><dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version>0.1.53</version></dependency>

2.数据源配置

下面数据源配置代表多数据源配置,单数据源配置按照单格式写即可

本人搭建的ClickHouse没有账密,它默认就是default用户,然后默认连接default库

spring:datasource:dynamic:primary: clickHouseDataSourcedatasource:clickHouseDataSource:url: jdbc:clickhouse://IP:端口号/defaultusername: defaultpassword:driver-class-name: ru.yandex.clickhouse.ClickHouseDriver

3.数据Entity对象创建

建表相关操作请见ClickHouse复杂查询单表亿级数据案例(可导出Excel)_clickhouse单表查询-CSDN博客

@Data
@TableName("sales")
public class Sales {@TableId(type = IdType.AUTO)private Long id;private Long productId;private Integer quantity;private Double price;private Date timestamp;private Long customerId;private Double discount;private Double totalAmount;private String paymentMethod;private String status;private String shippingAddress;private String billingAddress;private String orderNotes;private Date createdAt;private Date updatedAt;private Double shippingCost;private Double tax;private String orderSource;private String fulfillmentStatus;private String productName;private String productCategory;
}

4.基本架构搭建Mapper、Service、ServiceImpl、Controller

@Mapper
public interface SalesMapper extends BaseMapper<Sales> {
}
public interface ISalesService extends IService<Sales> {
}
@Service
public class SalesServiceImpl extends ServiceImpl<SalesMapper, Sales> implements ISalesService {
}
@RestController
@RequestMapping("/sales")
public class SalesController {@GetMapping("/{id}")@DS("clickHouseDataSource")public AppResponse<?> getSalesById(@PathVariable Long id) {LambdaQueryWrapper<Sales> queryWrapper=new LambdaQueryWrapper();// 数据多,先查询10条试试queryWrapper.last("limit 10");return AppResponse.success(salesService.list(queryWrapper));}
}

5.尝试调用

此时我们开足马力启动项目,调用接口访问这个查询,拿到了数据

还有很多产品都是基于ClickHouse进行二次开发或者加强功能,比如火山云的ByteHouse等,这个组件使用率的上升趋势还是很明显的

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com