首先就是引入依赖

<!-- 集成clickhouse --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.21</version></dependency><dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version>0.2.4</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.2</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.0</version></dependency><!--> 代码模板 </!--><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId></dependency><!-- 集成clickhouse -->

配置配置文件

server:port: 8085
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourceclick:driverClassName: ru.yandex.clickhouse.ClickHouseDriverurl: jdbc:clickhouse://192.168.31.216:8123/defaultusername: defaultpassword: jack9876initialSize: 10maxActive: 100minIdle: 10maxWait: 6000rabbitmq:####连接地址host: 127.0.0.1####端口号port: 5672####账号username: guest####密码password: guestmybatis-plus:mapper-locations: classpath:mapper/*Mapper.xmlconfiguration:map-underscore-to-camel-case: truecache-enabled: truelazy-loading-enabled: truemultiple-result-sets-enabled: trueuse-generated-keys: truedefault-statement-timeout: 60default-fetch-size: 100type-aliases-package: com.example.clickhouse.po

然后clickhouse数据库连接是粗腰自己注入Spring进行管理

@Configuration
public class DruidClickHouseConfig {@Bean@ConfigurationProperties(prefix = "spring.datasource.click")public DataSource druidDataSource() {return new DruidDataSource();}}

然后使用mybatis-plus自动生成工具生成代码,在使用代码生成工具建议使用mybatis-plus-generator 3.5.0以上版本,3.4版本会出现一些错误,节省我们的时间成本

public class CodeGeneratorConfig {//文件生成输出信息private static final String REPLACE_LOCAL_PATH = "/target/test-classes/";private static final String JAVA_PATH = "/src/main/java";private static final String author = "hong";//包名及文件名相关//模块名称private static final String moduleName = "";private static final String parentPackage = "com.example.clickhouse";private static final String mapperName = moduleName + "mapper";private static final String xmlName = mapperName + ".xml";private static final String entityPattern = "%sPo";//Service文件命名格式private static final String serviceNamePattern = "%sDao";//Service文件命名格式private static final String serviceImplNamePattern = "%sDaoImpl";//Service文件命名格式private static final String serviceName = moduleName + "dao";private static final String implName = moduleName + "dao.impl";private static final String pojoName = moduleName + "model.po";private static final String controllerName = moduleName + "controller";//数据库连接信息//数据库类型MySQL、Oracle等private static final String userName = "default";    private static final String password = "jack9876";private static final String jdbcUrl = "jdbc:clickhouse://192.168.31.216:8123/default";private static final String driverClassName = "ru.yandex.clickhouse.ClickHouseDriver";//表名前缀private static final String tablePrefix = "";//多表用逗号隔开"table1,table2"private static final String tables = "user";public static void main(String[] args) {// 获取项目路径String projectPath = ClassLoader.getSystemResource("").getPath().replace(REPLACE_LOCAL_PATH, "");// 全局配置GlobalConfig gc = GeneratorBuilder.globalConfigBuilder().fileOverride().openDir(false).outputDir(projectPath + JAVA_PATH).author(author).openDir(true).commentDate("yyyy-MM-dd").build();// 数据源配置DataSourceConfig dsc = new DataSourceConfig.Builder(jdbcUrl, userName, password).dbQuery(new ClickHouseQuery()).schema("default").build();// 包配置PackageConfig pc = GeneratorBuilder.packageConfigBuilder().parent(parentPackage).controller(controllerName).mapper(mapperName).service(serviceName).serviceImpl(implName).xml(xmlName).entity(pojoName).build();// 策略配置StrategyConfig strategy = GeneratorBuilder.strategyConfigBuilder().addInclude(tables).addTablePrefix("").controllerBuilder().enableHyphenStyle().enableRestStyle().serviceBuilder().formatServiceFileName(serviceNamePattern).formatServiceImplFileName(serviceImplNamePattern).entityBuilder().formatFileName(entityPattern).enableTableFieldAnnotation().naming(NamingStrategy.underline_to_camel).columnNaming(NamingStrategy.underline_to_camel).enableLombok().mapperBuilder().enableBaseColumnList().enableBaseResultMap().build();//模板配置TemplateConfig templateConfig = GeneratorBuilder.templateConfigBuilder().build();// 代码生成器AutoGenerator mpg = new AutoGenerator(dsc).global(gc).strategy(strategy).template(templateConfig).packageInfo(pc);mpg.execute(new FreemarkerTemplateEngine());}
}

接下就是操作写入数据库了,因clickhouse的SQL语法不是标准的SQL语法。所以建议使用自定义SQL语句来实现功能,不要使用Mybatis-Plu自带部分去操作SQL。
例如插入语句

<insert id="insertUser" useGeneratedKeys="false" parameterType="com.example.clickhouse.po.User">INSERT INTO default.user ( user_id, user_name, user_sex ) VALUES (#{userId},#{userName},#{userSex})</insert>

后面代码跟Mysql等操作基本相同,不在演示

SpringBoot+MybatisPlu+Druid集成ClickHouse相关推荐

  1. SpringBoot 集成 clickhouse + mybatis-plus 配置及使用问题说明(含建表语句、demo源码、测试说明)

    1.建表语句 -- 建表 CREATE TABLE IF NOT EXISTS tb_stat ( id String, region String, group String, yesterday ...

  2. spring-boot 速成(8) 集成druid+mybatis

    spring-boot与druid.mybatis集成(包括pageHelper分页插件), 要添加以下几个依赖项: compile('mysql:mysql-connector-java:6.0.5 ...

  3. 单手撸了个springboot+mybatis+druid

    本文旨在用最通俗的语言讲述最枯燥的基本知识 最近身边的程序员掀起了学习springboot的热潮,说什么学会了springboot在大街上就可以横着走.什么有了springboot妈妈再也不担心我的编 ...

  4. 3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务

    在一些复杂的应用开发中,一个应用可能会涉及到连接多个数据源,所谓多数据源这里就定义为至少连接两个及以上的数据库了. 下面列举两种常用的场景: 一种是读写分离的数据源,例如一个读库和一个写库,读库负责各 ...

  5. 单手撸了个springboot+mybatis+druid 1

    本文旨在用最通俗的语言讲述最枯燥的基本知识 最近身边的程序员掀起了学习springboot的热潮,说什么学会了springboot在大街上就可以横着走.什么有了springboot妈妈再也不担心我的编 ...

  6. 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

    首页 Android Java 服务器 标签云 作品 关于 赞助列表  <a href="https://github.com/RayeWang" class="f ...

  7. SpringBoot使用druid的密码加密

    1.springboot默认连接池 习惯使用springboot的小伙伴通过开始学习springboot链接数据库时,都会尝试着官方文档来 学习,所以springboot默认支持的数据库连接池c3p0 ...

  8. LTS简介以及与SpringBoot的简单集成

    LTS简介以及与SpringBoot的简单集成 一 什么是LTS 关于定时任务,虽然Spring提供了基于注解@EnableScheduling @Scheduled的实现方式.其实现是通过线程池Sc ...

  9. springboot配置Druid数据源

    springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...

最新文章

  1. 深度学习-强化学习-图神经网络-自然语言处理等AI课程超级大列表-最新版
  2. 校园计算机故障解决方论文法,计算机故障与处理-计算机专业毕业论文.pdf
  3. 怎么用cmd关闭系统弹窗_C盘空间越来越小怎么办?5招帮你解决问题!
  4. Perl迎来25岁生日
  5. 速达财务3000服务器账套维护显示,速达3000财务软件使用常见问题
  6. Android创建项目java报错,创建Android工程时报错:Errors running builder 'Android resource manager' on project '项目...
  7. 微软想证明Windows比Chrome好 主要源自恐惧?
  8. 蓝桥杯 BASIC-20 基础练习 数的读法 问题
  9. Android 多媒体开发学习之制作一个简单的画板
  10. SGuard64.exe(SGuardwnd) ACE-Guard Client EXE:造成磁盘经常读写,游戏卡顿,及解决方案
  11. 人型自走输入法(网页日语输入法)
  12. 手把手-AMOS全流程实操教程
  13. python多元回归因子选取_用Python进行多元线性回归分析(附代码)
  14. Span 介绍及使用(一)
  15. 转贴:ubuntu Rhythmbox歌曲名乱码问题
  16. python生成唯一id,分布式唯一id,雪花算法
  17. windows 下删除EFI分区方法
  18. android studio 横向拖动条,Android HorizontalScrollView内子控件横向拖拽实例代码
  19. 5G wifi 和 5G通信
  20. 打开idea后不显示界面

热门文章

  1. scheme或者guile尾递归算阶乘
  2. link2sd在部分Android 4.2.2系统下挂载告警必须快速重启才能挂载的问题
  3. zip.001文件解压方法
  4. 从C到Carry-----礼炮问题(if 硬刚所有条件)
  5. 网易游戏QA:在提高游戏用户和收入方面,有哪些经验?
  6. Win10使用cmd强行删除无法删除文件的艰辛历程[cmd中删除目录下子文件和子文件夹+修复文件夹所在磁盘+设置win10管理员模式]
  7. Android蓝牙BLE的详细讲解
  8. 【统计学】【2014】双相情感障碍的数学建模、预测和远程监测
  9. php使用json_decode后数字对象转换成了科学计数法的解决方法
  10. 一键定制rom刷机包!好用工具