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

SpringBoot實現(xiàn)mysql與clickhouse多數(shù)據(jù)源的項目實踐

 更新時間:2023年11月09日 10:44:59   作者:愛上雪茄  
本文主要介紹了SpringBoot實現(xiàn)mysql與clickhouse多數(shù)據(jù)源的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、我們來實現(xiàn)一個mysql與clickhouse多數(shù)據(jù)源配置

二、數(shù)據(jù)源配置

# 指定服務名稱
spring:
  application:
    name: demobigdata
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/db?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useAffectedRows=true&allowPublicKeyRetrieval=true
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      # 數(shù)據(jù)源  clickhouse
      clickhouse:
        driverClassName: com.clickhouse.jdbc.ClickHouseDriver
        url: jdbc:clickhouse://192.168.42.142:8123/bigdata
        username: default
        password: 123456
        initialSize: 10
        maxActive: 100
        minIdle: 10
        maxWait: 6000

三、MysqlDuridConfig

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import com.alibaba.druid.pool.DruidDataSource;

@Configuration
@MapperScan(basePackages = "org.demoflowable.mysql.dao")
public class MysqlDuridConfig {

	@javax.annotation.Resource
	MysqlJdbcParamConfig mysqlJdbcParamConfig;

	@Bean("mysqlDataSource")
	@Primary
	public DataSource mysqlDataSource() {
		DruidDataSource datasource = new DruidDataSource();
		datasource.setUrl(mysqlJdbcParamConfig.getUrl());
		datasource.setDriverClassName(mysqlJdbcParamConfig.getDriverClassName());
		datasource.setUsername(mysqlJdbcParamConfig.getUsername());
		datasource.setPassword(mysqlJdbcParamConfig.getPassword());
		return datasource;
	}

	@Bean("mysqlTransactionManager")
	@Primary
	public DataSourceTransactionManager getDataSourceTransactionManager(
			@Qualifier("mysqlDataSource") DataSource dataSource) {
		return new DataSourceTransactionManager(dataSource);
	}

	@Bean("sqlSessionFactory")
	@Primary
	public SqlSessionFactory getSqlSessionManager(@Qualifier("mysqlDataSource") DataSource dataSource)
			throws Exception {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		bean.setDataSource(dataSource);
		Resource[] resource = new PathMatchingResourcePatternResolver().getResources("classpath:META-INF/mapper/mysql/*.xml");
	    bean.setMapperLocations(resource);
	    Resource configLocation=new PathMatchingResourcePatternResolver().getResource("classpath:META-INF/spring/mybatis-config.xml");
	    bean.setConfigLocation(configLocation);
		return bean.getObject();
	}
}

四、MysqlJdbcParamConfig

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "spring.datasource")
public class MysqlJdbcParamConfig {
	
	private String driverClassName;
	
	private String url;
	
	private String username;
	
	private String password;

	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 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;
	}
}

五、ClickHouseJdbcParamConfig

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "spring.datasource.druid.clickhouse")
public class ClickHouseJdbcParamConfig {

	private String driverClassName;
	private String url;
	private Integer initialSize;
	private Integer maxActive;
	private Integer minIdle;
	private Integer maxWait;

	private String username;
	private String password;

	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;
	}

	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;
	}
}

六、ClickHouseConfig 

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import com.alibaba.druid.pool.DruidDataSource;

@Configuration
@ConfigurationProperties
@MapperScan(basePackages = "org.demoflowable.clickhouse.dao", sqlSessionFactoryRef = "clickhouseSqlSessionFactory")
public class ClickHouseConfig {

	@javax.annotation.Resource
	private ClickHouseJdbcParamConfig jdbcParamConfig;

	@Bean("clickDataSource")
	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());
		datasource.setUsername(jdbcParamConfig.getUsername());
		datasource.setPassword(jdbcParamConfig.getPassword());
		return datasource;
	}

	@Bean("clickTransactionManager")
	public DataSourceTransactionManager getDataSourceTransactionManager(
			@Qualifier("clickDataSource") DataSource dataSource) {
		return new DataSourceTransactionManager(dataSource);
	}

	@Bean("clickhouseSqlSessionFactory")
	public SqlSessionFactory getSqlSessionManager(@Qualifier("clickDataSource") DataSource dataSource)
			throws Exception {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		bean.setDataSource(dataSource);
		Resource[] resource = new PathMatchingResourcePatternResolver()
				.getResources("classpath:META-INF/mapper/clickhouse/*.xml");
		bean.setMapperLocations(resource);
		return bean.getObject();
	}
}

七、啟動類Application

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description: 啟動類
 */
@SpringBootApplication
@ComponentScan({ "org.demoflowable" })
public class Application {

	/**
	 * @Title: main
	 * @Description: 啟動類
	 * @param args
	 * @date 2023-11-08 01:49:23
	 */
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

}

 到此這篇關于SpringBoot實現(xiàn)mysql與clickhouse多數(shù)據(jù)源的項目實踐的文章就介紹到這了,更多相關SpringBoot mysql與clickhouse多數(shù)據(jù)源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring jpa和mybatis整合遇到的問題解析

    Spring jpa和mybatis整合遇到的問題解析

    有朋友說jpa相比mybatis太難用,多表聯(lián)合的查詢寫起來也比較費勁,所以便加入了mybatis的支持,在配置jpa時遇到各種問題,需要修改相關配置文件,下面小編給大家分享下修改配置文件的思路,感興趣的朋友參考下
    2016-10-10
  • 詳解如何判斷Java線程池任務已執(zhí)行完

    詳解如何判斷Java線程池任務已執(zhí)行完

    線程池的使用并不復雜,麻煩的是如何判斷線程池中的任務已經(jīng)全部執(zhí)行完了,所以接下來,我們就來看看如何判斷線程中的任務是否已經(jīng)全部執(zhí)行完吧
    2023-08-08
  • Java如何處理數(shù)據(jù)成為樹狀結構

    Java如何處理數(shù)據(jù)成為樹狀結構

    這篇文章主要介紹了Java如何處理數(shù)據(jù)成為樹狀結構問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • springboot配置http跳轉(zhuǎn)https的過程

    springboot配置http跳轉(zhuǎn)https的過程

    SSL是為網(wǎng)絡通信提供安全以及保證數(shù)據(jù)完整性的的一種安全協(xié)議,SSL在網(wǎng)絡傳輸層對網(wǎng)絡連接進行加密,這篇文章主要介紹了springboot配置http跳轉(zhuǎn)https的過程,需要的朋友可以參考下
    2023-04-04
  • Java集合Collection與List實例詳解

    Java集合Collection與List實例詳解

    文章主要講解了Java Collection單列集合的基礎知識,包括Collection接口及其子接口List和Set的特點與實現(xiàn)類,常用方法以及遍歷方式,如迭代器、增強for循環(huán)、forEach方法,并通過代碼實例展示了如何遍歷存儲自定義對象的集合,感興趣的朋友一起看看吧
    2026-05-05
  • SpringBoot小程序推送信息的項目實踐

    SpringBoot小程序推送信息的項目實踐

    本文主要介紹了SpringBoot小程序推送信息的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • 使用Digester解析XML文件的三種方式小結

    使用Digester解析XML文件的三種方式小結

    Digester是apache開源項目Commons中的一個子項目,用于解析XML文檔的工具,本文為大家整理了Digester解析XML文件的三種方式,希望對大家有所幫助
    2024-01-01
  • Springboot集成RabbitMQ死信隊列的實現(xiàn)

    Springboot集成RabbitMQ死信隊列的實現(xiàn)

    在大多數(shù)的MQ中間件中,都有死信隊列的概念。本文主要介紹了Springboot集成RabbitMQ死信隊列的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 讓JPA的Query查詢接口返回Map對象的方法

    讓JPA的Query查詢接口返回Map對象的方法

    下面小編就為大家分享一篇讓JPA的Query查詢接口返回Map對象的方法,具有很的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Java enum 對枚舉元素的賦值和取值方式

    Java enum 對枚舉元素的賦值和取值方式

    這篇文章主要介紹了Java enum 對枚舉元素的賦值和取值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評論

普洱| 霞浦县| 铅山县| 文昌市| 延吉市| 楚雄市| 天全县| 九龙坡区| 曲阳县| 尚志市| 德安县| 宣恩县| 刚察县| 沂源县| 泊头市| 达尔| 台东县| 黔南| 定西市| 建水县| 嘉荫县| 沙湾县| 那曲县| 光山县| 太仆寺旗| 阿鲁科尔沁旗| 莫力| 江津市| 隆德县| 红原县| 永昌县| 双峰县| 凉城县| 桐梓县| 隆德县| 津南区| 准格尔旗| 上犹县| 樟树市| 靖边县| 平顺县|