基于Druid或HikariDataSource动态数据拉取

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 基于Druid或HikariDataSource动态数据拉取

一、项目依赖

springboot项目,默认使用HikariDataSource数据源,Druid依赖如下

 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
        </dependency>

二、数据表结构及数据

三、基于Druid代码

package com.lets.controller.system;
 
import com.alibaba.druid.pool.DruidDataSource;
import lombok.extern.slf4j.Slf4j;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@Slf4j
public class Main {
    public static void main(String[] args) throws SQLException {
//      创建数据源
        DruidDataSource druid=new DruidDataSource();
//        设置数据url
        druid.setUrl("jdbc:postgresql://x.xxx.xx.xxx:xxxx/xxxx");
//        设置用户名
        druid.setUsername("xxxxx");
//        设置用户密码
        druid.setPassword("xxxxx");
//        设置驱动名称
        druid.setDriverClassName("org.postgresql.Driver");
//        数据库链接
        Connection connection = druid.getConnection();
//        设置预执行sql
        PreparedStatement preparedStatement = connection.prepareStatement("select * from dictionary where id=?");
//        补充占位符
        preparedStatement.setLong(1,1L);
//       获取返回结果
        ResultSet resultSet = preparedStatement.executeQuery();
//        输出返回结果
        while (resultSet.next()) {
//            根据数据库情况,合理获取对应列
            long ids = resultSet.getLong(1);
            String name = resultSet.getString(2);
            String code = resultSet.getString(3);
            log.info("id->{}    name->{}    code->{}",ids,name,code);
        }
        System.out.println(druid);
//        关闭资源
        if (preparedStatement!=null) {
            preparedStatement.close();
        }
        if (druid!=null) {
            connection.close();
        }
    }
}

四、基于 HikariDataSource代码

package com.lets.controller.system;
 
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
@Slf4j
public class Main2 {
    public static void main(String[] args) throws SQLException {
//        设置数据源配置
        HikariConfig configuration = new HikariConfig();
//        设置数据url
        configuration.setJdbcUrl("jdbc:postgresql://x.xx.xx.xx:xxx/xxx");
//        设置驱动名称
        configuration.setDriverClassName("org.postgresql.Driver");
//        设置用户名
        configuration.setUsername("xxxxx");
//        设置用户密码
        configuration.setPassword("xxxxx");
//      创建数据源
        HikariDataSource dataSource=new HikariDataSource(configuration);
//        数据库链接
        Connection connection = dataSource.getConnection();
//        设置预执行sql
        PreparedStatement preparedStatement = connection.prepareStatement("select * from dictionary where id=?");
//        补充占位符
        preparedStatement.setLong(1,1L);
//       获取返回结果
        ResultSet resultSet = preparedStatement.executeQuery();
//        输出返回结果
        while (resultSet.next()) {
//            根据数据库情况,合理获取对应列
            long ids = resultSet.getLong(1);
            String name = resultSet.getString(2);
            String code = resultSet.getString(3);
            log.info("id->{}    name->{}    code->{}",ids,name,code);
        }
        System.out.println(dataSource);
//        关闭资源
        if (preparedStatement!=null) {
            preparedStatement.close();
        }
        if (dataSource!=null) {
            connection.close();
        }
    }
}

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
4月前
|
缓存 NoSQL Java
SpringBoot实现缓存预热的几种常用方案
SpringBoot实现缓存预热的几种常用方案
|
4月前
|
消息中间件 JSON druid
Druid:通过 Kafka 加载流数据
Druid:通过 Kafka 加载流数据
95 0
|
1天前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
4月前
|
SQL 资源调度 Java
Flink问题之动态配置如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
120 1
|
4月前
|
SQL 监控 druid
Druid数据库连接池简介及应用推广(老项目翻出来做下记录)
Druid数据库连接池简介及应用推广(老项目翻出来做下记录)
|
4月前
|
SQL 消息中间件 Kafka
Flink数据源问题之扫描数据源如何解决
Flink数据源是指Apache Flink用于读取外部系统数据的接口或组件;本合集将探讨Flink数据源的类型、配置方法和最佳实践,以及在使用数据源时可能遇到的错误和解决方案。
|
4月前
|
存储 Prometheus Cloud Native
Grafana 系列文章(十一):Loki 中的标签如何使日志查询更快更方便
Grafana 系列文章(十一):Loki 中的标签如何使日志查询更快更方便
|
4月前
|
存储 自然语言处理 Java
SpringBoot集成ElasticSearch时分页排序查询时遇到的坑每次只能返回10条数据
SpringBoot集成ElasticSearch时分页排序查询时遇到的坑每次只能返回10条数据
187 0
|
JSON Java 数据格式
springboot 集成tlog 实现分布式日志标记追踪
springboot 集成tlog 实现分布式日志标记追踪
1143 0
|
SQL 监控 druid
使用Druid数据源并查看监控页面
使用Druid数据源并查看监控页面
1450 0