diff --git a/README.md b/README.md
index beb3bb0..873ea44 100644
--- a/README.md
+++ b/README.md
@@ -5,40 +5,42 @@
【案例中相关中间件搭建】--> 【[GitHub点这里](https://github.com/cicadasmile/linux-system-base)】 【[码云.点这里](https://gitee.com/cicadasmile/linux-system-base)】
-01、SpringBoot2.0 整合 shard-jdbc 中间件,实现数据分库分表
+01、SpringBoot2 整合 shard-jdbc 中间件,实现数据分库分表
-02、SpringBoot2.0 整合 JavaMail ,实现异步发送邮件功能
+02、SpringBoot2 整合 JavaMail ,实现异步发送邮件功能
-03、SpringBoot2.0 整合 RocketMQ ,实现请求异步处理
+03、SpringBoot2 整合 RocketMQ ,实现请求异步处理
-04、SpringBoot2.0 整合 Swagger2 ,构建接口管理界面
+04、SpringBoot2 整合 Swagger2 ,构建接口管理界面
-05、SpringBoot2.0 整合 QuartJob ,实现定时器实时管理
+05、SpringBoot2 整合 QuartJob ,实现定时器实时管理
-06、SpringBoot2.0 整合 Redis集群 ,实现消息队列场景
+06、SpringBoot2 整合 Redis集群 ,实现消息队列场景
-07、SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用
+07、SpringBoot2 整合 Dubbo框架 ,实现RPC服务远程调用
-08、SpringBoot2.0 整合 ElasticSearch框架,实现高性能搜索引擎
+08、SpringBoot2 整合 ElasticSearch框架,实现高性能搜索引擎
-09、SpringBoot2.0 整合 JWT 框架,解决Token跨域验证问题
+09、SpringBoot2 整合 JWT 框架,解决Token跨域验证问题
-10、SpringBoot2.0 整合 FastDFS 中间件,实现文件分布管理
+10、SpringBoot2 整合 FastDFS 中间件,实现文件分布管理
-11、SpringBoot2.0 整合 Shiro 框架,实现用户权限管理
+11、SpringBoot2 整合 Shiro 框架,实现用户权限管理
-12、SpringBoot2.0 整合 Security 框架,实现用户权限管理
+12、SpringBoot2 整合 Security 框架,实现用户权限管理
+
+[13、SpringBoot2 整合 ClickHouse数据库,实现数据高性能查询分析](https://mp.weixin.qq.com/s?__biz=MzU4Njg0MzYwNw==&mid=2247484121&idx=1&sn=29cc633facbbb2c69afa4e6472fb93e8&chksm=fdf45661ca83df77879cbea0e0e3b445a5972a9fc0f84ae25c6882e60e4bed3dc2a68338fa2a&token=1150397377&lang=zh_CN#rd)
持续更新中...
diff --git a/pom.xml b/pom.xml
index c1bfffe..31292f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,6 +41,8 @@
ware-shiro-auth
ware-security-auth
+
+ ware-click-house
diff --git a/ware-click-house/pom.xml b/ware-click-house/pom.xml
new file mode 100644
index 0000000..00fa680
--- /dev/null
+++ b/ware-click-house/pom.xml
@@ -0,0 +1,76 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starters
+ 2.1.3.RELEASE
+
+ 4.0.0
+ com.click.house
+ ware-click-house
+ jar
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 1.3.2
+
+
+ mysql
+ mysql-connector-java
+ 5.1.38
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.1.13
+
+
+ commons-lang
+ commons-lang
+ 2.6
+
+
+
+ ru.yandex.clickhouse
+ clickhouse-jdbc
+ 0.1.53
+
+
+
+
+ ${project.artifactId}
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+
+ 1.8
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ware-click-house/src/main/java/com/click/house/Application7016.java b/ware-click-house/src/main/java/com/click/house/Application7016.java
new file mode 100644
index 0000000..9eb3533
--- /dev/null
+++ b/ware-click-house/src/main/java/com/click/house/Application7016.java
@@ -0,0 +1,13 @@
+package com.click.house;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+@MapperScan(basePackages = {"com.click.house.mapper"})
+public class Application7016 {
+ public static void main(String[] args) {
+ SpringApplication.run(Application7016.class,args) ;
+ }
+}
diff --git a/ware-click-house/src/main/java/com/click/house/config/DruidConfig.java b/ware-click-house/src/main/java/com/click/house/config/DruidConfig.java
new file mode 100644
index 0000000..bb81860
--- /dev/null
+++ b/ware-click-house/src/main/java/com/click/house/config/DruidConfig.java
@@ -0,0 +1,26 @@
+package com.click.house.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import javax.annotation.Resource;
+import javax.sql.DataSource;
+
+@Configuration
+public class DruidConfig {
+
+ @Resource
+ private JdbcParamConfig jdbcParamConfig ;
+
+ @Bean
+ public DataSource dataSource() {
+ DruidDataSource datasource = new DruidDataSource();
+ datasource.setUrl(jdbcParamConfig.getUrl());
+ datasource.setDriverClassName(jdbcParamConfig.getDriverClassName());
+ datasource.setInitialSize(jdbcParamConfig.getInitialSize());
+ datasource.setMinIdle(jdbcParamConfig.getMinIdle());
+ datasource.setMaxActive(jdbcParamConfig.getMaxActive());
+ datasource.setMaxWait(jdbcParamConfig.getMaxWait());
+ return datasource;
+ }
+}
diff --git a/ware-click-house/src/main/java/com/click/house/config/JdbcParamConfig.java b/ware-click-house/src/main/java/com/click/house/config/JdbcParamConfig.java
new file mode 100644
index 0000000..9b948af
--- /dev/null
+++ b/ware-click-house/src/main/java/com/click/house/config/JdbcParamConfig.java
@@ -0,0 +1,52 @@
+package com.click.house.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Component
+@ConfigurationProperties(prefix = "spring.datasource.click")
+public class JdbcParamConfig {
+
+ private String driverClassName ;
+ private String url ;
+ private Integer initialSize ;
+ private Integer maxActive ;
+ private Integer minIdle ;
+ private Integer maxWait ;
+ public String getDriverClassName() {
+ return driverClassName;
+ }
+ public void setDriverClassName(String driverClassName) {
+ this.driverClassName = driverClassName;
+ }
+ public String getUrl() {
+ return url;
+ }
+ public void setUrl(String url) {
+ this.url = url;
+ }
+ public Integer getInitialSize() {
+ return initialSize;
+ }
+ public void setInitialSize(Integer initialSize) {
+ this.initialSize = initialSize;
+ }
+ public Integer getMaxActive() {
+ return maxActive;
+ }
+ public void setMaxActive(Integer maxActive) {
+ this.maxActive = maxActive;
+ }
+ public Integer getMinIdle() {
+ return minIdle;
+ }
+ public void setMinIdle(Integer minIdle) {
+ this.minIdle = minIdle;
+ }
+ public Integer getMaxWait() {
+ return maxWait;
+ }
+ public void setMaxWait(Integer maxWait) {
+ this.maxWait = maxWait;
+ }
+}
diff --git a/ware-click-house/src/main/java/com/click/house/controller/UserInfoController.java b/ware-click-house/src/main/java/com/click/house/controller/UserInfoController.java
new file mode 100644
index 0000000..41cafae
--- /dev/null
+++ b/ware-click-house/src/main/java/com/click/house/controller/UserInfoController.java
@@ -0,0 +1,36 @@
+package com.click.house.controller;
+
+import com.click.house.entity.UserInfo;
+import com.click.house.service.UserInfoService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@RestController
+@RequestMapping("/user")
+public class UserInfoController {
+ @Resource
+ private UserInfoService userInfoService ;
+ @RequestMapping("/saveData")
+ public String saveData (){
+ UserInfo userInfo = new UserInfo () ;
+ userInfo.setId(4);
+ userInfo.setUserName("winter");
+ userInfo.setPassWord("567");
+ userInfo.setPhone("13977776789");
+ userInfo.setEmail("winter");
+ userInfo.setCreateDay("2020-02-20");
+ userInfoService.saveData(userInfo);
+ return "sus";
+ }
+ @RequestMapping("/selectById")
+ public UserInfo selectById () {
+ return userInfoService.selectById(1) ;
+ }
+ @RequestMapping("/selectList")
+ public List selectList () {
+ return userInfoService.selectList() ;
+ }
+}
diff --git a/ware-click-house/src/main/java/com/click/house/entity/UserInfo.java b/ware-click-house/src/main/java/com/click/house/entity/UserInfo.java
new file mode 100644
index 0000000..a8aa561
--- /dev/null
+++ b/ware-click-house/src/main/java/com/click/house/entity/UserInfo.java
@@ -0,0 +1,59 @@
+package com.click.house.entity;
+
+public class UserInfo {
+
+ private Integer id ;
+ private String userName ;
+ private String passWord ;
+ private String phone ;
+ private String email ;
+ private String createDay ;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getPassWord() {
+ return passWord;
+ }
+
+ public void setPassWord(String passWord) {
+ this.passWord = passWord;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getCreateDay() {
+ return createDay;
+ }
+
+ public void setCreateDay(String createDay) {
+ this.createDay = createDay;
+ }
+}
diff --git a/ware-click-house/src/main/java/com/click/house/mapper/UserInfoMapper.java b/ware-click-house/src/main/java/com/click/house/mapper/UserInfoMapper.java
new file mode 100644
index 0000000..842da83
--- /dev/null
+++ b/ware-click-house/src/main/java/com/click/house/mapper/UserInfoMapper.java
@@ -0,0 +1,15 @@
+package com.click.house.mapper;
+
+import com.click.house.entity.UserInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface UserInfoMapper {
+ // 写入数据
+ void saveData (UserInfo userInfo) ;
+ // ID 查询
+ UserInfo selectById (@Param("id") Integer id) ;
+ // 查询全部
+ List selectList () ;
+}
diff --git a/ware-click-house/src/main/java/com/click/house/service/UserInfoService.java b/ware-click-house/src/main/java/com/click/house/service/UserInfoService.java
new file mode 100644
index 0000000..836657a
--- /dev/null
+++ b/ware-click-house/src/main/java/com/click/house/service/UserInfoService.java
@@ -0,0 +1,14 @@
+package com.click.house.service;
+
+import com.click.house.entity.UserInfo;
+
+import java.util.List;
+
+public interface UserInfoService {
+ // 写入数据
+ void saveData (UserInfo userInfo) ;
+ // ID 查询
+ UserInfo selectById (Integer id) ;
+ // 查询全部
+ List selectList () ;
+}
diff --git a/ware-click-house/src/main/java/com/click/house/service/impl/UserInfoServiceImpl.java b/ware-click-house/src/main/java/com/click/house/service/impl/UserInfoServiceImpl.java
new file mode 100644
index 0000000..0a3cb60
--- /dev/null
+++ b/ware-click-house/src/main/java/com/click/house/service/impl/UserInfoServiceImpl.java
@@ -0,0 +1,31 @@
+package com.click.house.service.impl;
+
+import com.click.house.entity.UserInfo;
+import com.click.house.mapper.UserInfoMapper;
+import com.click.house.service.UserInfoService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class UserInfoServiceImpl implements UserInfoService {
+
+ @Resource
+ private UserInfoMapper userInfoMapper ;
+
+ @Override
+ public void saveData(UserInfo userInfo) {
+ userInfoMapper.saveData(userInfo);
+ }
+
+ @Override
+ public UserInfo selectById(Integer id) {
+ return userInfoMapper.selectById(id);
+ }
+
+ @Override
+ public List selectList() {
+ return userInfoMapper.selectList();
+ }
+}
diff --git a/ware-click-house/src/main/resources/application-dev.yml b/ware-click-house/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..30f62c0
--- /dev/null
+++ b/ware-click-house/src/main/resources/application-dev.yml
@@ -0,0 +1,10 @@
+spring:
+ datasource:
+ type: com.alibaba.druid.pool.DruidDataSource
+ click:
+ driverClassName: ru.yandex.clickhouse.ClickHouseDriver
+ url: jdbc:clickhouse://127.0.0.1:8123/default
+ initialSize: 10
+ maxActive: 100
+ minIdle: 10
+ maxWait: 6000
\ No newline at end of file
diff --git a/ware-click-house/src/main/resources/application.yml b/ware-click-house/src/main/resources/application.yml
new file mode 100644
index 0000000..cc93ca7
--- /dev/null
+++ b/ware-click-house/src/main/resources/application.yml
@@ -0,0 +1,19 @@
+server:
+ tomcat:
+ uri-encoding: UTF-8
+ port: 7016
+spring:
+ profiles:
+ active: dev
+ application:
+ name: ware-click-house
+ http:
+ encoding:
+ charset: UTF-8
+ force: true
+ enabled: true
+
+# mybatis 配置
+mybatis:
+ type-aliases-package: com.click.house.entity
+ mapper-locations: classpath:/mapper/*.xml
\ No newline at end of file
diff --git a/ware-click-house/src/main/resources/mapper/UserInfoMapper.xml b/ware-click-house/src/main/resources/mapper/UserInfoMapper.xml
new file mode 100644
index 0000000..5c52ec2
--- /dev/null
+++ b/ware-click-house/src/main/resources/mapper/UserInfoMapper.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,user_name,pass_word,phone,email,create_day
+
+
+
+ INSERT INTO cs_user_info
+ (id,user_name,pass_word,phone,email,create_day)
+ VALUES
+ (#{id,jdbcType=INTEGER},#{userName,jdbcType=VARCHAR},#{passWord,jdbcType=VARCHAR},
+ #{phone,jdbcType=VARCHAR},#{email,jdbcType=VARCHAR},#{createDay,jdbcType=VARCHAR})
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ware-click-house/src/main/resources/user-info.sql b/ware-click-house/src/main/resources/user-info.sql
new file mode 100644
index 0000000..64cc7ae
--- /dev/null
+++ b/ware-click-house/src/main/resources/user-info.sql
@@ -0,0 +1,20 @@
+CREATE TABLE cs_user_info (
+ `id` UInt64,
+ `user_name` String,
+ `pass_word` String,
+ `phone` String,
+ `email` String,
+ `create_day` Date DEFAULT CAST(now(),'Date')
+) ENGINE = MergeTree(create_day, intHash32(id), 8192)
+
+INSERT INTO cs_user_info
+ (id,user_name,pass_word,phone,email)
+VALUES
+ (1,'cicada','123','13923456789','cicada@com'),
+ (2,'smile','234','13922226789','smile@com'),
+ (3,'spring','345','13966666789','spring@com');
+
+SELECT * FROM cs_user_info ;
+SELECT * FROM cs_user_info WHERE user_name='smile' AND pass_word='234';
+SELECT * FROM cs_user_info WHERE id IN (1,2);
+SELECT * FROM cs_user_info WHERE id=1 OR id=2 OR id=3;
\ No newline at end of file