最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot+mybatis配置clickhouse實(shí)現(xiàn)插入查詢功能

 更新時(shí)間:2020年08月10日 11:04:38   作者:一起打球嗎?  
這篇文章主要介紹了springboot+mybatis配置clickhouse實(shí)現(xiàn)插入查詢功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

說(shuō)明

ClickHouse 是一款用于大數(shù)據(jù)實(shí)時(shí)分析的列式數(shù)據(jù)庫(kù)管理系統(tǒng),在大數(shù)據(jù)量查詢時(shí)有著非常優(yōu)秀的性能,
但是也有缺點(diǎn),就是不支持事務(wù),不支持真正的刪除 / 更新,所以筆者只演示插入和查詢。

1.添加maven依賴

<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數(shù)據(jù)庫(kù) -->
 <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、配屬數(shù)據(jù)源

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、參數(shù)配置

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連接池配置

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

<?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接口

@Mapper
public interface UserMapper {

 List<User> queryUser();

 Integer insertUser(User user);
}

7.controller接口

@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.創(chuàng)建一個(gè)clickhouse表,然后插入幾條數(shù)據(jù)測(cè)試一下

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.測(cè)試

在這里插入圖片描述

參考文章:SpringBoot2 整合 ClickHouse數(shù)據(jù)庫(kù)案例解析

總結(jié)

到此這篇關(guān)于springboot+mybatis配置clickhouse實(shí)現(xiàn)插入查詢功能的文章就介紹到這了,更多相關(guān)springboot+mybatis配置clickhouse內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring boot整合RabbitMQ(Direct模式)

    spring boot整合RabbitMQ(Direct模式)

    springboot集成RabbitMQ非常簡(jiǎn)單,如果只是簡(jiǎn)單的使用配置非常少,springboot提供了spring-boot-starter-amqp項(xiàng)目對(duì)消息各種支持。下面通過(guò)本文給大家介紹下spring boot整合RabbitMQ(Direct模式),需要的朋友可以參考下
    2017-04-04
  • Spring AOP定義AfterReturning增加實(shí)例分析

    Spring AOP定義AfterReturning增加實(shí)例分析

    這篇文章主要介紹了Spring AOP定義AfterReturning增加,結(jié)合實(shí)例形式分析了Spring面相切面AOP定義AfterReturning增加相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • 如何通過(guò)Java打印Word文檔

    如何通過(guò)Java打印Word文檔

    這篇文章主要介紹了如何通過(guò)Java打印Word文檔,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • java?log?is判斷引發(fā)的一系列事件解析

    java?log?is判斷引發(fā)的一系列事件解析

    這篇文章主要為大家介紹了java?log?is判斷引發(fā)的一系列事件解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 在?Spring?Boot?中使用?Quartz?調(diào)度作業(yè)的示例詳解

    在?Spring?Boot?中使用?Quartz?調(diào)度作業(yè)的示例詳解

    這篇文章主要介紹了在?Spring?Boot?中使用?Quartz?調(diào)度作業(yè)的示例詳解,在本文中,我們將看看如何使用Quartz框架來(lái)調(diào)度任務(wù),Quartz支持在特定時(shí)間運(yùn)行作業(yè)、重復(fù)作業(yè)執(zhí)行、將作業(yè)存儲(chǔ)在數(shù)據(jù)庫(kù)中以及Spring集成,需要的朋友可以參考下
    2022-07-07
  • Spring Boot項(xiàng)目@RestController使用重定向redirect方式

    Spring Boot項(xiàng)目@RestController使用重定向redirect方式

    這篇文章主要介紹了Spring Boot項(xiàng)目@RestController使用重定向redirect方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解java裝飾模式(Decorator Pattern)

    詳解java裝飾模式(Decorator Pattern)

    這篇文章主要為大家詳細(xì)介紹了java裝飾模式Decorator Pattern,這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類的一個(gè)包裝,對(duì)裝飾器模式感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java 什么是注解及注解原理詳細(xì)介紹

    Java 什么是注解及注解原理詳細(xì)介紹

    這篇文章主要介紹了Java 注解的原理實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Java多線程執(zhí)行處理業(yè)務(wù)時(shí)間太久解決方法代碼示例

    Java多線程執(zhí)行處理業(yè)務(wù)時(shí)間太久解決方法代碼示例

    這篇文章主要介紹了Java多線程執(zhí)行處理業(yè)務(wù)時(shí)間太久解決方法代碼示例的相關(guān)資料,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • VSCode中開(kāi)發(fā)JavaWeb項(xiàng)目的詳細(xì)過(guò)程(Maven+Tomcat+熱部署)

    VSCode中開(kāi)發(fā)JavaWeb項(xiàng)目的詳細(xì)過(guò)程(Maven+Tomcat+熱部署)

    這篇文章主要介紹了VSCode中開(kāi)發(fā)JavaWeb項(xiàng)目(Maven+Tomcat+熱部署),本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09

最新評(píng)論

巨鹿县| 福海县| 灵宝市| 桃园县| 景谷| 盘锦市| 新巴尔虎右旗| 体育| 工布江达县| 洪洞县| 长阳| 察哈| 大关县| 南宁市| 高淳县| 福海县| 保康县| 怀来县| 丰都县| 威海市| 伊通| 崇阳县| 循化| 甘洛县| 奈曼旗| 衡山县| 容城县| 万年县| 康保县| 华安县| 嵩明县| 延庆县| 衡山县| 乌鲁木齐县| 平度市| 镇远县| 鄂托克旗| 遂溪县| 富民县| 道真| 绥中县|