一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springboot+mybatis配置clickhouse實現插入查詢功能

springboot+mybatis配置clickhouse實現插入查詢功能

2020-08-11 00:09一起打球嗎? Java教程

這篇文章主要介紹了springboot+mybatis配置clickhouse實現插入查詢功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

說明

ClickHouse 是一款用于大數據實時分析的列式數據庫管理系統,在大數據量查詢時有著非常優秀的性能,
但是也有缺點,就是不支持事務,不支持真正的刪除 / 更新,所以筆者只演示插入和查詢。

1.添加maven依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-aop</artifactId>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
 </dependency>
 <dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.3.2</version>
 </dependency>
 <dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid-spring-boot-starter</artifactId>
  <version>1.1.13</version>
 </dependency>
 <dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
  <version>2.6</version>
 </dependency>
 <!-- clickHouse數據庫 -->
 <dependency>
  <groupId>ru.yandex.clickhouse</groupId>
  <artifactId>clickhouse-jdbc</artifactId>
  <version>0.1.53</version>
 </dependency>
 <dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
 </dependency>

2、配屬數據源

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
spring:
 datasource:
 type: com.alibaba.druid.pool.DruidDataSource
clickhouse:
 driverClassName: ru.yandex.clickhouse.ClickHouseDriver
 url: jdbc:clickhouse://106.55.55.249:8123/default
 password: ck的密碼
 initialSize: 10
 maxActive: 100
 minIdle: 10
 maxWait: 6000
mybatis:
 mapper-locations: classpath:mapper/*Mapper.xml
 type-aliases-package: com.wyu.tt16clickhouse.entity
server:
 port: 8090

3、參數配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
 
@Data
@Component
public class ChParam {
 private String driverClassName;
 private String url;
 private String password;
 private Integer initialSize;
 private Integer maxActive;
 private Integer minIdle;
 private Integer maxWait;
 
 @Value("${clickhouse.driverClassName}")
 public void setDriverClassName(String driverClassName) {
 this.driverClassName = driverClassName;
 }
 
 @Value("${clickhouse.url}")
 public void setUrl(String url) {
 this.url = url;
 }
 
 @Value("${clickhouse.password}")
 public void setPassword(String password) {
 this.password = password;
 }
 
 @Value("${clickhouse.initialSize}")
 public void setInitialSize(Integer initialSize) {
 this.initialSize = initialSize;
 }
 
 @Value("${clickhouse.maxActive}")
 public void setMaxActive(Integer maxActive) {
 this.maxActive = maxActive;
 }
 
 @Value("${clickhouse.minIdle}")
 public void setMinIdle(Integer minIdle) {
 this.minIdle = minIdle;
 }
 
 @Value("${clickhouse.maxWait}")
 public void setMaxWait(Integer maxWait) {
 this.maxWait = maxWait;
 }
}

4、Druid連接池配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
import javax.sql.DataSource;
 
@Configuration
public class DruidConfig {
 
 @Autowired
 private ChParam chParam;
 
 @Bean
 public DataSource dataSource() {
 DruidDataSource datasource = new DruidDataSource();
 datasource.setUrl(chParam.getUrl());
 datasource.setDriverClassName(chParam.getDriverClassName());
 datasource.setInitialSize(chParam.getInitialSize());
 datasource.setMinIdle(chParam.getMinIdle());
 datasource.setMaxActive(chParam.getMaxActive());
 datasource.setMaxWait(chParam.getMaxWait());
 datasource.setPassword(chParam.getPassword());
 return datasource;
 }
}

5、Mapper.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wyu.tt16clickhouse.UserMapper">
 
 <select id="queryUser" resultType="com.wyu.tt16clickhouse.entity.User">
 select userId, appId, version, regTime from `default`.`user`
 </select>
 
 <insert id="insertUser" parameterType="com.wyu.tt16clickhouse.entity.User">
  INSERT INTO `default`.`user` (`userId`, `appId`, `version`, `regTime`)
  VALUES (#{userId}, #{appId}, #{version}, #{regTime})
 </insert>
</mapper>

6、Mapper接口

?
1
2
3
4
5
6
7
@Mapper
public interface UserMapper {
 
 List<User> queryUser();
 
 Integer insertUser(User user);
}

7.controller接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@Slf4j
@RestController
public class UserController {
 
 @Autowired
 private UserMapper userMapper;
 
 @RequestMapping("/queryUser")
 public Object query(){
 List userList = userMapper.queryUser();
 log.info(userList.toString());
 return userList.toString();
 }
 
 @RequestMapping("/insertUser")
 public Object insertUser(){
 User user = new User();
 user.setAppId("SS");
 user.setRegTime(new Date());
 user.setUserId(777744);
 user.setVersion("3.2");
 Integer flag = userMapper.insertUser(user);
 return flag;
 }
}

8.創建一個clickhouse表,然后插入幾條數據測試一下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
create table user
(
 userId Int32,
 appId String,
 version String,
 regTime Date
)
 engine = MergeTree PARTITION BY toYYYYMM(regTime) ORDER BY userId SETTINGS index_granularity = 8192;
 
INSERT INTO default.user (userId, appId, version, regTime) VALUES (123457, 'RR', '3.6', '2020-01-07');
INSERT INTO default.user (userId, appId, version, regTime) VALUES (43234, 'HH', '2.5', '2020-06-06');
INSERT INTO default.user (userId, appId, version, regTime) VALUES (1234, 'TT', '2.4', '2020-07-24');
INSERT INTO default.user (userId, appId, version, regTime) VALUES (12345, 'RR', '2.5', '2020-07-29');
INSERT INTO default.user (userId, appId, version, regTime) VALUES (123456, 'TT', '2.1', '2020-07-09');
INSERT INTO default.user (userId, appId, version, regTime) VALUES (234561, 'GG', '3.0', '2020-07-31');

9.測試

springboot+mybatis配置clickhouse實現插入查詢功能

參考文章:SpringBoot2 整合 ClickHouse數據庫案例解析

總結

到此這篇關于springboot+mybatis配置clickhouse實現插入查詢功能的文章就介紹到這了,更多相關springboot+mybatis配置clickhouse內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_39025362/article/details/107715706

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲欧美在线中文bt天堂网 | 激情婷婷综合久久久久 | 免费一级特黄特色大片 | 调教开发新婚娇妻放荡 | 无码AV精品一区二区三区 | 色综色天天综合网 | 日本在线观看视频网站 | 精品国产福利一区二区在线 | 精品日本三级在线观看视频 | 粉嫩极品国产在线观看免费 | 亚洲AV无码乱码在线观看浪潮 | 午夜亚洲一区二区福利 | 亚洲国产精品久久精品怡红院 | 日韩毛片在线视频 | 色悠久久久久综合网小说 | 久久最新地址获取 | 国精视频一区二区视频 | 日本精品中文字幕在线播放 | 青青草人人 | 午夜福利在线观看6080 | 色综合天天综合网站中国 | 天堂资源wwww在线看 | 视频一区二区在线 | 男人久久天堂 | 免费aⅴ在线 | 放荡女小洁的性日记 | 久青草国产观看在线视频 | 欧美老少 | 免费亚洲视频在线观看 | 99久久精品国产综合一区 | 操破苍穹在线 | 艾秋麻豆果冻剧传媒在线播放 | 海角社区在线视频 | 成年人黄色录像 | 亚洲天堂男人天堂 | 天天操天天干天天 | 免费一级毛片在级播放 | 韩国免费特一级毛片 | 国产精品视频一区二区三区经 | 亚洲成人第一 | 天天色视频 |