ClickHouse数据库操作+SpringBoot+MybatisPlus+多数据源集成_springboot clickhouse mybatis

本文介绍了如何在SpringBoot项目中结合MybatisPlus集成ClickHouse数据库进行操作,包括建立连接、插入数据和查询数据的示例代码。通过ClickHouseUtils类的实现,展示了基本的SQL执行方法,如insert和queryResultSet。此外,还提供了配置ClickHouse数据源的代码片段。
摘要由CSDN通过智能技术生成
/\*\*

* 连接对象批量关闭
* @param autoCloseable 连接对象集
*/
void close(AutoCloseable… autoCloseable);

/\*\*

* 基本操作SQL执行类
* @param con 连接对象
* @param sql sql命令
* @param params 参数
* @return 布尔
*/
boolean baseSqlExecute(Connection con, String sql, String…params);
boolean insert(Connection con, String sql, String…params);
boolean delete(Connection con, String sql, String…params);
/**
* 基本查询SQL执行类
* @param con 连接对象
* @param sql sql命令
* @param params 参数
* @return 数据集合
*/
List<Map<String, Object>> queryResultSet(Connection con, String sql, String…params);
}


clickhouse接口实现类:



import com.clickhouse.jdbc.ClickHousePreparedStatement;
import lombok.extern.slf4j.Slf4j;
import org.yaml.snakeyaml.util.EnumUtils;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Slf4j
public class ClickHouseUtils implements Utils{
@Override
public Connection connection(ConnectionObj connectionObj) {
Connection con = null;
try {
// 获取驱动类
Class.forName(connectionObj.getDriverName());
// 建立连接获取连接对象
con = DriverManager.getConnection(connectionObj.getUrl(), connectionObj.getUser(), connectionObj.getPassword());
}catch (Exception e){
log.error(“Connection fail, please check your config:”, e);
}
return con;
}

@Override
public void close(AutoCloseable... autoCloseable) {
    for (AutoCloseable closeable : autoCloseable) {
        if (closeable != null){
            try {
                closeable.close();
            }catch (Exception e){
                log.error("Close fail:", e);
            }finally {
                closeable = null;
            }
        }
    }
}

@Override
public boolean baseSqlExecute(Connection con, String sql, String... params) {
    boolean is = false;
    ClickHousePreparedStatement pst = null;
    if (con == null){
        log.error("Connection is empty");
        return is;
    }
    try {
        // 获取控制台
        pst = (ClickHousePreparedStatement) con.prepareStatement(sql); // 需要做安全处理
        for (int i = 0; i < params.length; i++) {
            pst.setObject(i+1, params[i]);
        }
        is = pst.execute();
    }catch (SQLException e){
        log.error("SQLException:", e);
    }finally {

// close(pst, con);
}
return is;
}

@Override
public boolean insert(Connection con, String sql, String... params) {
    return false;
}

@Override
public boolean delete(Connection con, String sql, String... params) {
    return false;
}

@Override
public List<Map<String, Object>> queryResultSet(Connection con, String sql, String... params) {
    List<Map<String, Object>> list = new ArrayList<>();
    ResultSet r = null;
    
  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值