Java-Clickhouse-Druid-jdbc

Clickhouse

基础

概念:

背后的研发团队是俄罗斯的yandex公司,该公司是搜索引擎公司。
是关系数据库的一种,与传统的mysql不同采用行式存储不同,该数据库采用的是列式存储。

实操

windows + docker desktop 下载clickhouse

参考博客:https://blog.youkuaiyun.com/qubernet/article/details/121013960
在这里插入图片描述
存在问题1:

**命令出现问题:**
PASSWORD=$(base < /dev/urandom | head -c8); echo "testroot"; echo -n "123456" | sha256sum | tr -d '-'
需要通过apt-get下载 coreutils包 和 openssl包

**账号密码:**
testroot
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

testroot
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

两次运行的结果都一样。

最新处理数据:
quber
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

存在问题2:

问题描述:
按照参考博客配置,会出现:
std::exception. Code: 1001, type: std::out_of_range, e.what() = unordered_map::at: key not found (version 21.12.3.32 (official build))的问题
问题分析:
<quber>
	这是XML元素的根标签,代表正在配置的ClickHouse用户名称,即“quber”。
<password_sha256_hex>
	表示用户“quber”的密码经过SHA-256算法加密后得到此十六进制表示的哈希值;
<networks incl="networks" replace="replace">
	incl=“networks” :指示可能有其他地方定义了一组通用的网络规则(如在父级配置或外部文件中),这里将包括(include)那些通用规则;
	replace=“replace”:表示即使有通用规则存在,也应该完全替换(replace)为这里指定的网络规则,即只允许来自::/0的所有IPv6地址的连接。
<ip>::/0
以下是使用Spring Boot结合MyBatis和Alibaba Druid连接池对ClickHouse进行数据操作的步骤: 1.在pom.xml文件中添加ClickHouse JDBC驱动和Alibaba Druid连接池的依赖: ```xml <dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.3.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> ``` 2.在application.properties文件中配置ClickHouseDruid的连接信息: ```properties # ClickHouse 数据库连接配置 spring.datasource.url=jdbc:clickhouse://localhost:8123/default spring.datasource.driver-class-name=ru.yandex.clickhouse.ClickHouseDriver spring.datasource.username=username spring.datasource.password=password # Druid 连接池配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.initial-size=1 spring.datasource.min-idle=1 spring.datasource.max-active=20 spring.datasource.max-wait=60000 spring.datasource.time-between-eviction-runs-millis=60000 spring.datasource.min-evictable-idle-time-millis=300000 spring.datasource.validation-query=SELECT 1 FROM DUAL spring.datasource.test-while-idle=true spring.datasource.test-on-borrow=false spring.datasource.test-on-return=false spring.datasource.pool-prepared-statements=true spring.datasource.max-pool-prepared-statement-per-connection-size=20 spring.datasource.filters=stat,wall,log4j spring.datasource.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 ``` 3.在Spring Boot的启动类上添加注解@EnableTransactionManagement和@MapperScan: ```java @SpringBootApplication @EnableTransactionManagement @MapperScan("com.example.demo.mapper") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 4.创建Mapper接口和对应的XML文件,使用MyBatis进行数据操作: ```java @Mapper public interface UserMapper { @Select("SELECT * FROM user") List<User> selectAll(); } ``` ```xml <mapper namespace="com.example.demo.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.demo.entity.User"> <id column="id" property="id" jdbcType="INTEGER"/> <result column="name" property="name" jdbcType="VARCHAR"/> <result column="age" property="age" jdbcType="INTEGER"/> </resultMap> <select id="selectAll" resultMap="BaseResultMap"> SELECT * FROM user </select> </mapper> ``` 5.在Controller中注入Mapper并进行数据操作: ```java @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/users") public List<User> getUsers() { return userMapper.selectAll(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值